    16:	int i ; 
    17:	TFirstClass fc; 
    18: 
    19:	cout  "\nCall Access the normal way:\n"; 
    20:	for ( i = 0 ; i < 9 ; i++ ) 
    21:	   cout  setw(8)  dec  fc.Access() ; 
    22:	cout  "\n\nCall Access via the member function pointer\n"; 
    23:	myfnptr = &TFirstClass::Access; 
    24:	for ( i = 0 ; i < 9; i++ ) 
    25:	   cout  setw(8)  dec  (fc.*myfnptr)() ; 
    26:	cout  "\n\nMember function pointer and a dynamic instance\n"; 
    27:	TFirstClass *fp = new TFirstClass ; 
    28:	for (i = 0; i < 9; i++) 
    29:	   cout  setw(8)  dec  (fp->*myfnptr)(); 
    30:	return 0; 
    31:	} 
    32: 
    33:	int TFirstClass::Access(void) 
    34:	{ 
    35:	  return count++ ; 
    36:	} 

      12 myfnptr    -  
TFirstClass,       . 
     - ,   . 
      main()   17   fc  TFirstClass,  
 21  - Aceess()  TFirstClass   fc 
 . ( Access()     
         - !) 
      25   - Access()   
 myfnptr.      23  myfnptr 
  - Access()  TFirstClass.    
   ( 12)   ( 23)  
,      main(): 

    int (TFirstClass::*myfnptr)(void) = &TFirstClass::Access; 

        -     
 . 
         . 
           . 
    ,     ,  f    
TFirstClass,    n   Access(): 

    n = (fc.*myfnptr)(); 

      .*        
    -  .    
 (f.'myfnptr) ,     ()  
  ,  .*. ,  ,   
   

     = f. Access(); 

       -   ,   
  -. ,    27-29 
  MFNPTR ( 15.14).   fp   
   TFirstClass.    

    (fp->*myfnptr)(); 

       29  - Access()  
,   fp.   ->*   
    .  ,   , 
  ()    ,  ->*.  
    : 

    fp->Access(); 

        - ,    
    . ,    TFirstClass  
   double   balance,       
   : 

    double TFirstClass::*dataPtr; 

     dataPtr      -  
 TFirstClass,      .  
    ,  : 

    dataPtr = &TFirstClass::balance ;	


     15.   C++     395 
