Question

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

   ...
 }
Était-ce utile?

La solution

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top