// file testStatic.cpp // #include <iostream>
using namespace std ;
class testStatic { public: static void pnt() { cout << "Test: " << endl ; }
void pnt(int i) { cout << "void pnt(int i): " << i << endl ; }
// overloading function
void pnt(int i) const { cout << "void pnt(int i) const: " << i << endl ; }
// for convienence ,data members are delcared in public field static const int ival ; void (testStatic::*pmf)(int) ; void (testStatic::*pmfc)(int) const ; } ;
//delcaration is necessary const int testStatic::ival = 9 ;
//delcaration is necessary const int *pval = &testStatic::ival ;
//notice the type of static member function pnt void (* pf)() = &testStatic::pnt ;
// notice the type of member function pnt void (testStatic::*pmf)(int) = &testStatic::pnt ;
// notice the type of const member funtion pnt void (testStatic::*pmfc)(int) const = &testStatic::pnt ;
int main(char argc ,char *argv[]) { testStatic ts ; ts.pnt() ; cout << "using class member pointer: " << *pval << endl ; cout << testStatic::ival << endl ; (ts.*pmf)(2) ; (ts.*pmfc)(2) ; ts.pmf = &testStatic::pnt ; //assign value again (ts.*pmf)(3) ; return 0 ; } 
|