Я хотел бы сделать следующее:вызов получен метод из базового указателя
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
}
}
Но все это я получаю призывы к Базе :: Init(), это даже можно делать то, что я намерен?
Как Base есть какие-либо знания Derived? –
Я думаю, что вызов 'new Derived' подразумевается здесь как то, что должно быть запущено. –
Разрешено ли вызывать виртуальные функции из конструктора? –