    picture[]= new	Circle;
    picture[]	= new	Circle; 
    picture[]	= new	Line; 
    picture[]	= new	Circle; 
    picture[]= new        Line; 

          Shape  ,   ,  
     ,      
. ,     ,   
    picture,        
  ,      , 
   Shape. 

       - 

        ,    -, 
  -,        
  ,    : 

    class TValue { 
    protected: 
       int value;	
       TValuefint n) { value = n;  }	
       int GetValue(void) { return value;  } 
   }; 

           TValue,   
    :	

    Tvalue (10);	//   Tvalue x 
    cout  x.GetValue()  '\n';                 //  10 

         TValue.    
        . 
    TMult: 

    class TMult:   public TValue { 
    protected: 
       int multiplier;	
    public: 
       TMult(int n,  int m):  TValue(n) { multiplier = m;   } 
        int GetValue(void) { return value * multiplier;   } 

     TMult   - GetValueO   , 
 value * multiplier.      TMult   
 - GetValue(),  ,    , 
  ,    . 

    TMult y(10,  2);	//   TMult                         
     cout  .GetValueO  '\n';                 //  20                                                                     

    , . ,        
TSingle  TDouble.       tvp  
TValue  : 

    TValue *tvp = new TValue(10); 

       - GetValueO  ,   
 : 

    cout  tvp->GetValue()  '\n';	//  20 

    ,         TMult  
  - GetValue(): 

    TMult *tmp = new Tf -t(10,  2); 
    cout  tmp->GetValue()  '\n';	//  20 

      C++,     ,  
       

    TValue basep;	//    TValue 

       : 

    basep = new TMult(10, 2);         // !!!    

     basep        TValue,   
     TMult,     
basep.   ,      : 

    cout  basep->GetValue()  '\\';         // ???  10 

      ,       20. 
 ,  C++  basep    TValue. 
, C++  - GetValueO   


     14. -  353 
     Borland C++4.5 
