栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++中如何定义指向类成员的指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++中如何定义指向类成员的指针

简单示例
class Test
{
public:
	Test(){ std::cout << "Test()" << std::endl; };
    void show() { std::cout << "show()" << std::endl; }
    static void fun(){ std::cout << "fun()" << std::endl; }

    int a;
    static int b;
};

int Test::b;

int main()
{
    //int * p  = &Test::a;
    //int Test::*p 转换为 int *
    Test t1;
    Test *t2 = new Test();

    int Test::* p = &Test::a;
    //依赖对象
    t1.*p = 200;
    std::cout << t1.*p << std::endl;
    //依赖对象
    t2->*p = 300;
    std::cout << t2->*p << std::endl;

    int * q = &Test::b;
    //不依赖对象
    *q = 400;
    std::cout << *q << std::endl;

    //pf指向的不是一般的全局方法,是属于Test类型下的成员方法
    //C风格定义函数指针,自然就不需要加类作用域了
    void (Test::*pf)() = &Test::show;
    (t1.*pf)();
    (t2->*pf)();

    //而静态方法调用是不需要依赖对象的
    void (*pfun)() = &Test::fun;
    pfun();
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号