这个问题已经在这里有了答案:
已关闭8年。
在下面的代码中,第3行代表什么,它是类型转换的方式吗?要不然是啥
void someCode()
{
char memory[sizeof(Fred)]; // Line #1
void* place = memory; // Line #2
Fred* f = new(place) Fred(); // Line #3
// The pointers f and place will be equal
...
}
最佳答案
这是 Placement new 的典型用法。
它允许您分配内存,然后在该特定内存位置构造对象。
第3行实际上只是调用构造函数Fred::Fred()
。 this
构造函数中的Fred
指针将等于place
。因此,返回的指针f
将等于place
。
关于c++ - 下面的句子在c++中是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10033194/