网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

<六>指向类成员的指针

指向类成员(成员变量和成员方法)的指针

荥阳网站建设公司创新互联建站,荥阳网站设计制作,有大型网站制作公司丰富经验。已为荥阳上千提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的荥阳做网站的公司定做!

1:定义一个指针指向类的普通成员变量

示例代码1

点击查看代码
class Test2{

public:
   int ma;
   static int mb;
   void f1(){cout<<"Test::void f1()"<
上面 int *p = &Test2::ma; 可以这样吗? 不可以, 编译报错 不可以将 int Test2::* 转为 int *
点击查看代码
    需要这样定义 
    int  Test2::*p = &Test2::ma;
    *p=30;//这样操作没有意义,因为ma是需要基于对象的,所以需要这样
 
    Test2  t;
    int  Test2::*p = &Test2::ma;
    t.*p=30;

    或者
    Test2 *pt=new Test2();
    int  Test2::*pp = &Test2::ma;
    pt->*pp=40;

    或者
    int *p3=&Test2::mb;
    *p3=50;

2:定义一个函数指针指向类的成员函数

void (*pf)() = &Test2::f1(); 编译报错

要明确的指出pf是指向Test2类中函数的函数指针,如下

void(Test2::*pf)()=&Test2::f1();

如果通过函数指针调用函数?需要依赖对象,如下
Test2 t3;
Test2 p4=new Test2();
t3.
pf(); //*解引用

(p4->*pf)();// *解引用

3:定义函数指针指向类的静态成员方法

void (pf2)() = &Test2::static_f;
(
pf2)();

完整示例代码如下

点击查看代码
class Test2{

public:
   int ma;
   static int mb;
   void f1(){cout<<"Test::void f1()"<ma<*p=2000;

    //定义指针指向 类的 静态成员变量
    int *pStatic = &Test2::mb;
    *pStatic=9999;

    //定义函数指针 指向 类的普通成员方法
    void (Test2::*pf)()=&Test2::f1;
    (obj1.*pf)();
    (pObj2->*pf)();



    //定义函数指针 指向 类的静态方法

     void (*pf2)() = &Test2::static_f;
     (*pf2)();

    return 1;
}


网页标题:&lt;六&gt;指向类成员的指针
分享网址:http://bjjierui.cn/article/dsopcec.html