    58:	     cout  "Name : "  typeid(*p).name() 	endl ; 
    59:	     cout  "Borland C++ bug. This SHould not	appear. "  endl; 
    60:	     p = new int; // Never executes 
    61:	     delete p;   // Never executes
    62:	  } 
    63:	  catch (Bad_typeid x) { 
    64:	     cout  "Error: typeid exception thrown"	 endl; 
    65:	      // . . . exit program or take other action	here 
    66:	  } 
    67: 
    68:	  delete pa; 
    69:	  return 0; 
    70:	} 

        .   
  ,         AnyClass: 

    cout  "Name :  "  typeid(pa).name()  endl; ;    cout  "Name :  "  typeid(*pa).name()  endl; 

    typeid       AnyClass*. 
    v  *    AnyClass. 
        Type_info    , 
  typeid: 

    cout  "Name :  "  typeid(typeid(i)).name()  endl; 

       Borland C++     name()  
     .     
   : 

    if (typeid(c) != typeid(d)) 
        cout  typeid(c).name()  " and "  typeid(d).name()  " are not equivalent."  endl; 

         "char and double are not 
equivalent",     "char and char are not equivalent".  
     name()   
    d    . 
      , ,  
   : 

    if (typeid(c) != typeid(d)) { 
       cout  typeid(),name  " and "; 
       cout  typeid(d).name()  " are not equivalent."  endl; 
    } 


     
    
             .  
   ,    .


     

             ,  , ,  
   . 
            .    
  ,           
  . 
               
      C++   . 
           ,  
 C++.      ,  
 (/)   (*),   ,    (-)   
(~).       , 
        ,
  . 
       new  delete  ,      
       . 
        new  ,     
 .         
 set_new_handler(). 
            ,  , 
         ,  
          
  . 
         ,  , 
     ,   
   . 
    

     15.   C++ 421 
