374                                       .   

class X {

public:

void* operator new(size_t size)

(return (malloc(size)); }
void operator delete(void* ptr) { free(ptr); }
X(unsigned size) ( new(size); }
-X() { delete(this); }

};

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

  (placement)    
,      new ()  -
 .       ,
      .   -
  new     new.h.

- new()  delete ()  .   
   7.12,  new  delete,  . 214 (  over_new.cpp).

 

    ,      
new   .

   new.h   set_new_handler (), -
 ,   ,  new  . 
set_new_handler ()    ,    
new,    .      -
 bad_alloc  xalloc.  new.h    .

.9.11.  

 C++  ()   []   . 
   ,         :

a[j + 6]         // *( + j + 6)
sqrt(z + 15.5)   //   double

        -
.         
(   )     .

::i         //   i
A::foo()    //  foo(),   

     *  ->.   ,   
,  ,    .   *  ->
   7.11.1,    ,  . 212.