我想使用成员函数指针调用虚函数的基类实现。
class Base {
public:
virtual void func() { cout << "base" << endl; }
};
class Derived: public Base {
public:
void func() { cout << "derived" << endl; }
void callFunc()
{
void (Base::*fp)() = &Base::func;
(this->*fp)(); // Derived::func will be called.
// In my application I store the pointer for later use,
// so I can't simply do Base::func().
}
};
在上面的代码中,将从callFunc调用func的派生类实现。有没有办法保存指向Base::func的成员函数指针,或者必须以某种方式使用using
?
在我的实际应用程序中,我使用boost::bind在callFunc中创建一个boost::function对象,稍后我使用它从程序的另一部分调用func。因此,如果boost::bind或boost::function有办法解决这个问题,也会有所帮助。
https://stackoverflow.com/questions/1207106
复制相似问题