从基指针调用派生方法
Call derived method from base pointer
我想做以下事情:
void do_stuff(Base* base_ptr) {
// here I need the overridden methods
base_ptr->init();
}
class Base {
Base() {
do_stuff(this);
}
virtual void init() {}
};
class Derived : public Base {
virtual void init() override {
// Derived specific init
}
}
但我得到的只是对Base::init()的调用,是否有可能实现我的意图?
您正在从构造函数中调用一个虚拟函数!
重复->调用构造函数内的虚拟函数
相关文章:
- 使用基类中的派生方法运行线程,而无需使用模板
- 使用回调函数从构造函数调用虚拟/派生方法的替代方法?
- 无法实例化抽象类,但类不是抽象/派生方法的参数
- 使用库中的基础级别中的派生方法
- 如何通过功能指针调用派生方法
- C++ shared_ptr从派生方法返回此值
- C 基本方法称为而不是派生方法
- 可视化C++对象被上投射到基类;无法调用派生方法
- C++ 继承函数指针,可与派生方法一起使用
- 基本方法被调用而不是派生方法
- 正在调用基方法,而不是从构造函数派生方法
- 具有显式派生方法的C++接口
- 正在调用派生方法而不是Base
- 继承方法,派生方法调用的不是基
- 使用不在基类中的派生方法
- 如何使用基指针访问派生方法
- 是否可以显式使用祖先的虚拟类方法作为派生方法?
- 中的派生方法未在基类中调用
- 从基指针调用派生方法
- 从基类调用基类中不存在的派生方法