            ,  
 .     ,     
 ,        
     . 
               
       .  
  -    .
              ,   
         
         . 
      15.1 ,       
     . 

     15.1.  FRIEND.CPP (  ) 

    1:	#include <iostream.n> 
    2: 
    3:	class Pal { 
    4:	   friend class Buddy;	//	Buddy -   Pal 
    5:	private: 
    6:	   int x;	//	  Pal  Buddy 
    7:	protected: 
    8:	   void doublex(void) { x *= x; }	//	  Pal  Buddy 
    9:	public: 
    10:	   Pal() { x = 100; }	//	   
    11:	   Pal(int n) { x = n; }	// 
    12:	}; 
    13: 
    14:	class Buddy { 
    15:	private: 
    16:	   Pal palObject;	//	   Buddy 
    17:	public: 
    18:	   void ShowValues(void);	//	   
    19:	}; 
    20: 
    21:	main() 
    22:	{ 
    23:	Buddy aSuddy; 
    24: 
    25:	aBuddy.ShowValues(); 
    26:	return 0; 
    27:	} 
    28: 
    29:	void Buddy: :Showvalues(void) 
    30:	{ 
    31:	Pal aPal(1234); 
    22: 
    33:	cout  "\nBefore, palObject. x	=="  palObject.x; 
    34:	palObject . doublex( ) ; 
    35:	cout  "\nAfter, palObject. x	=="  palObject.x; 
    36:	cout  "\naPal.x == "  aPal.x	 "\n'; 
    37:	} 

     FRIEND       Pal.   4 
,    Buddy     Pal.    
-  Buddy        
  Pal. ,  Pal       
  Buddy. 
      16   Buddy    Pal.   
 ,    ,   Buddy      
Pal, - ShowValuesO        
   - doblex() ( 29-37)  Pal. 

       

         ,      
     . ,    , 
        
         
 . ,         
"". 
         ,     
   ,        
     .  AClass  BClass   
,     :


    15.   C++     369 137 
