    25:	BrandNew *2 = new BrandNew; 
    26:	BrandNew *b3 = new BrandNew; 
    27:	BrandNew *54 = new BrandNew; 
    28:	BrandNew *5 = new BrandNew; 
    29:	return 0; 
    30:	} 
    31: 
    32:	BrandNew::BrandNew() 
    33:	{ 
    34:	  cout  "\nlnside constructor"; 
    35:	  x = index; 
    36:	}
    37: 
    38:	void *BrandNew::operator new(size_t size) 
    39:	{ 
    40:	  cout  "\nlnside overloaded new. Size == "  size; 
    41:	  if (index >= 512 - sizeof(BrandNew)) 
    42:	     return 0; 
    43:	  else { 
    44:	    int k = index; 
    45:	    index += sizeof(BrandNew); 
    46:.	    return &buf[k]; 
    47:	  } 
    48:	}
 

     delete 

     delete      .    
  new,     delete    
,  .     
delete    

    void operator delete(void *p); 

     .      
  : 

    void operator delete(void *p,  size_t size); 

         C++    
     . 
         delete   BrandNew  
 OVERNEW ( 15.7)  -    : 

    void BrandNew::operator delete(void *p) 
    {
       cout  "\nDeleting object at "  p; 
    } 

          .  
      ,   delete  
     .     
    .     
 main()    return: 

    delete 2; 
    delete ;
    delete b4;
    deiete b5; 

       ,   ,  , 
,     delete.   
   ,    
   delete      
     new. (.   
"    "    .) 

    

        C++   
    ,     new, 
    . ,   
BrandNew * =  ::new BrandNew      
BrandNew  new. , ::delete      
delete,   .


     15.   C++     381 
