7.11.   213

pF = &::reset ;

(.*pF)() ;

a.print() ;

cout  endl;

}

   :

hide = 8 visible = 8
hide = 8 visible = 9
b.visible = 4
hide = 4 visible = 4
hide = 8 visible = 8

  showhide

 typedef void (X::*pfcn)();

 ,  pfcn        X, 
     ,  void. -
X: : print : : re set    .

 int X::*pXint = &::visible;

pfcn pF = &X::print;

   pXint,       X,
    int.   ,    
X: :visible.  pF    -

X::print.

 a.*pXint += 1;

   ,   ++ .visible.

 cout  "\nb.visible = "  pb ->*pXint;

(b.*pF)() ;

   pb -> visible.   

b.print().

 pF = &::reset ;

(a.*pF)() ;

 pF   : : reset.    . reset ().

      . 
    -  ,   -
   .         -
,     ;      -
   .     ,  
,        .