加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C .类方法指针

发布时间:2020-12-16 03:14:53 所属栏目:百科 来源:网络整理
导读:有一个班 class A {public: A() {};private: void func1(int) {}; void func2(int) {};}; 我想添加一个函数指针,它将在构造函数中设置,并指向func1或func2. 所以我可以从每个类过程调用这个指针(作为类成员),并在构造函数中设置这个指针. 我该怎么做? 解决
有一个班
class A {
public:
    A() {};

private:
    void func1(int) {};
    void func2(int) {};


};

我想添加一个函数指针,它将在构造函数中设置,并指向func1或func2.

所以我可以从每个类过程调用这个指针(作为类成员),并在构造函数中设置这个指针.

我该怎么做?

解决方法

class A {
public:
    A(bool b) : func_ptr_(b ? &A::func1 : &A::func2) {};

    void func(int i) {this->*func_ptr(i);}

private:
    typedef void (A::*func_ptr_t_)();
    func_ptr_t_ func_ptr_;

    void func1(int) {};
    void func2(int) {};
};

也就是说,多态可能是更好的方式来做任何你想做的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读