//39指向类成员(数据函数)的指针
//类 数据成员 函数成员
成员类型 类名::* 指针名 = &类名::成员名
int a;int p = &a;
函数返回类型 类名::( 函数指针名)(参数列表) = &类名::成员函数名
void fun(); void( * pf)()=&func();
//对象
// .* ->* 对象.数据成员指针 对象指针->数据成员指针
(对象.成员函数指针)() (对象指针->成员函数指针)()
class Stu
{
public:
Stu(string sn,int ia):
name(sn),age(ia){}
void print()
{
cout<<name<<"-"<<age<<endl;
}
public:
string name;
int age;
};
int main()
{
Stu s1("zhaosi",39);
Stu s2("aobaniu",79);//栈
Stu *pp = new Stu(“nigulasi”,60);
int Stu::*pa = &Stu::age;
cout<<s1.name<<s2.name<<endl;
cout<<s1.*pa<<s2.*pa<<endl;//结果一样和上面
cout<<pp->*pn<<endl;
void (Stu::*pf)()=&Stu::print;
s1.print();s2.print();
s1.(*pf)();s2.(*pf)();
(pp->*pf)();
return 0;
}
//对象 数据成员 函数成员