c ++中下面句子的含义是什么?

时间:2012-04-05 17:31:23

标签: c++ new-operator placement-new

  

可能重复:
  C++'s “placement new”

在下面的代码中,第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

   ...
 }

1 个答案:

答案 0 :(得分:3)

这是 Placement new 的典型用法 它允许您分配内存,然后在该特定内存位置构造对象。

第3行基本上只调用构造函数Fred::Fred()this构造函数中的Fred指针将等于place。因此,返回的指针f将等于place