/*
* Compile options needed: None
*/
#include < iostream >
using namespace std;
class Data
{
private :
int y;
static int x;
public :
void SetData( int value) {y = value; return ;};
int GetData() { return y;};
static void SSetData( int value) {x = value; return ;};
static int SGetData() { return x;};
};
int Data::x = 0 ;
void main( void )
{
Data mydata, mydata2;
// Initialize pointer.
void (Data:: * pmfnP)( int ) = & Data::SetData; // mydata.SetData;
// Initialize static pointer.
void ( * psfnP)( int ) = & Data::SSetData; // 注意:对于静态成员函数,在指针声明中必须省略类名.
mydata.SetData( 5 ); // Set initial value for private data.
cout << " mydata.data = " << mydata.GetData() << endl;
(mydata. * pmfnP)( 20 ); // Call member function through pointer.
cout << " mydata.data = " << mydata.GetData() << endl;
(mydata2. * pmfnP)( 10 ) ; // Call member function through pointer.
cout << " mydata2.data = " << mydata2.GetData() << endl;
( * psfnP)( 30 ) ; // Call static member function through pointer.
cout << " static data = " << Data::SGetData() << endl ;
}
* Compile options needed: None
*/
#include < iostream >
using namespace std;
class Data
{
private :
int y;
static int x;
public :
void SetData( int value) {y = value; return ;};
int GetData() { return y;};
static void SSetData( int value) {x = value; return ;};
static int SGetData() { return x;};
};
int Data::x = 0 ;
void main( void )
{
Data mydata, mydata2;
// Initialize pointer.
void (Data:: * pmfnP)( int ) = & Data::SetData; // mydata.SetData;
// Initialize static pointer.
void ( * psfnP)( int ) = & Data::SSetData; // 注意:对于静态成员函数,在指针声明中必须省略类名.
mydata.SetData( 5 ); // Set initial value for private data.
cout << " mydata.data = " << mydata.GetData() << endl;
(mydata. * pmfnP)( 20 ); // Call member function through pointer.
cout << " mydata.data = " << mydata.GetData() << endl;
(mydata2. * pmfnP)( 10 ) ; // Call member function through pointer.
cout << " mydata2.data = " << mydata2.GetData() << endl;
( * psfnP)( 30 ) ; // Call static member function through pointer.
cout << " static data = " << Data::SGetData() << endl ;
}