如何使用类成员函数指针

// note:
// all the codes below are working in Visual Studio 2012
// need to check on other compilers since the rules may different from VS
    class VA
    {
    public:
        VA(void) {}
        ~VA(void) {}

        void setValue(int v) { value = v + 300; }
    protected:
        int value;
    };

    typedef void (VA::*PFUNC)(int);
    PFUNC pfunc = &VA::setValue; // & is a must-have for function pointer to a class member function
    VA va;
    (va.*pfunc)(200); // * here is also a must-have


    void (VA::*p_setvalue)(int) = &VA::setValue; // not use typedef
    (va.*p_setvalue)(300);


    int (*funcp)(int, int) = testFuncPointer; // for global function, both & and * are not necessary
    int ret = funcp(1, 2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值