有一个班
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) {}; };
也就是说,多态可能是更好的方式来做任何你想做的事情.