第二行是什么? (在回答另一个问题时看到的。)
int * x = new int [1] ;
int * y = new (x) int;
第二行之后 x 和 y 具有相同的值(指向相同的位置)。 y = x 和第二行有什么区别?它像构造函数还是什么?
It's 安置新 http://en.wikipedia.org/wiki/Placement_new。它构建了一个新的int
在指向的内存中x
.
如果你试试:
int * x = new int [1];
*x = 5;
std::cout << *x << std::endl;
int * y = new (x) int;
*y = 7;
std::cout << *x << std::endl;
输出将是:
5
7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)