using namespace std ;
class Fred{
public:
Fred (double d,int c):dx(d),cx(c){}
int f(double d,int c){ dx = dx + d ; cx = cx + c ;return cx; }
int g(double d,int c){ dx = dx + d ; cx = cx + c ;return cx; }
int h(double d,int c){ dx = dx + d ; cx = cx + c ;return cx; }
static int z(int c){ zx = zx + c ;return zx; }
private:
double dx ;
int cx ;
static int zx ;
} ;
int Fred::zx = 20 ;
typedef int (Fred::*MemFn)(double,int) ;
void DoTesT(Fred& fobj,MemFn fn)
{
int i = (fobj.*fn)(1,5) ;
cout << i << endl ;
}
int main()
{
Fred fobj(100.0,50) ;
MemFn f1 = &Fred::f ;
MemFn g1 = &Fred::g ;
MemFn h1 = &Fred::h ;
DoTesT(fobj,f1) ;
DoTesT(fobj,g1) ;
DoTesT(fobj,h1) ;
int zint = Fred::z(123) ;
cout << zint << endl ;
}
- Dec 22 Mon 2014 09:59
creating pointers to class members
close
全站熱搜
留言列表