Я хочу вызвать переопределенный метод из метода базового класса, вызванного производным классом:
class Base {
Base();
virtual void function override() {}
void basefunction() {
override();
}
class Derived : public Base {
Derived() {
basefunction();
}
virtual void function override() {
cout << "derived" << endl;
}
}
main() {
Base* d = new Derived();
}
Конструктор Derived вызывает базовую функцию, которая должна вызвать переопределенную функцию "override()"
из производногокласс.
Но это не так.Он вызывает Base :: override ().Я понимаю, почему вызывается эта функция, но как я могу реализовать мою проблему: базовая функция вызывает функцию переопределения из производного класса?
Если функция переопределения определена как чисто виртуальная, объявление в главной функциине допускается.