C++ 从基指针调用派生方法
我想做以下几点:C++ 从基指针调用派生方法,c++,inheritance,C++,Inheritance,我想做以下几点: 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() overrid
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()的调用,甚至可以执行我想要的操作吗?您正在从构造函数中调用一个虚拟函数
重复->Base如何知道派生的?我认为对
new-Derived
的调用在这里被暗示为应该运行的内容。是否允许从构造函数调用虚拟函数?谢谢,可以在Base构造函数的某个全局容器中“注册”对象吗?对虚拟方法的访问将在稍后进行。