指向类成员(数据函数)的指针

//39指向类成员(数据函数)的指针
//类 数据成员 函数成员
成员类型 类名::* 指针名 = &类名::成员名
int a;int p = &a;
函数返回类型 类名::(
函数指针名)(参数列表) = &类名::成员函数名
void fun(); void( * pf)()=&func();
//对象
// .* ->* 对象.数据成员指针 对象指针->数据成员指针
(对象.成员函数指针)() (对象指针->成员函数指针)()

屏幕截图 2023-07-03 220047.png

屏幕截图 2023-07-03 221655.png

屏幕截图 2023-07-03 221803.png
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;
}

//对象 数据成员 函数成员

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容