What is the meaning of the below sentence in c++ [duplicate]

六月ゝ 毕业季﹏ 提交于 2019-12-14 04:16:53

问题


Possible Duplicate:
C++'s “placement new”

in the below code what does Line 3 represents, is it the way of typecasting? or what

 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:


This is a typical usage of Placement new.
It allows you to allocate memory and then construct objects at that particular memory location.

Line #3 essentially just calls the constructor Fred::Fred(). The this pointer in the Fred constructor will be equal to place. The returned pointer f will therefore be equal to place.



来源:https://stackoverflow.com/questions/10033194/what-is-the-meaning-of-the-below-sentence-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!