214                                             7. Ad hoc 

7.12.  new  delete

        -
.         -
  ,  ,     
  new  delete.

 new    :

:: opr new ^  
 pi   (optional) .   :

::new char[10]; //   new
new(buff) X(a); //  buff  ::()

         
 new ().     sizeof ()  
.   :

void* operator new(size_t size);

 new  delete   .    -
,     . -
,           -
 malloc (),   void*    . 
       free () mstdlib.h. -
   new  delete,      -
     .

#include <stdlib.h> // malloc()  free()

class X (
public:

void* operator new(size_t size)
{ return (malloc(size)); }

void operator delete(void* ptr) { free(ptr); }

Xfunsigned size) { new(size); }

~X( ) { delete(this); }

};

    X    new ()  delete ().
   operator new (),     -
       : :.

          -
    , ,  -
     .  ,   
      ,  
.

  (placement)    
,      new ()  -