作者在 2014-02-01 15:56:32 发布以下内容
#include <iostream>
using namespace std;
class c1
{
public:
int val;
c1(int i) { val = i; }
int double_val() { return val + val;}
};
int main()
{
int c1::*data; //data member pointer
int (c1::*func)(); //function member pointer
c1 ob1(1), ob2(2); //create objects
data = &c1::val; //get offset of val
func = &c1::double_val; //get offset of double_val()
cout << "Here are values: " ;
cout << ob1.*data << " " << ob2.*data << endl;
cout << "Here they are doubled: " ;
cout << (ob1.*func)() << " ";
cout << (ob2.*func)() << endl;
return 0;
}
using namespace std;
class c1
{
public:
int val;
c1(int i) { val = i; }
int double_val() { return val + val;}
};
int main()
{
int c1::*data; //data member pointer
int (c1::*func)(); //function member pointer
c1 ob1(1), ob2(2); //create objects
data = &c1::val; //get offset of val
func = &c1::double_val; //get offset of double_val()
cout << "Here are values: " ;
cout << ob1.*data << " " << ob2.*data << endl;
cout << "Here they are doubled: " ;
cout << (ob1.*func)() << " ";
cout << (ob2.*func)() << endl;
return 0;
}