Мой вопрос, вероятно, лучше всего объяснить на примере.
Например, у меня есть 2 класса: базовый класс и производный класс:
class baseClass
{
public:
baseClass()
{
foo();
}
virtual bool foo() { printf("baseClass"); return false;}
};
class derivedClass : public baseClass
{
public:
bool foo()
{
printf("derivedClass");
return true;
}
};
Когда я создаю экземпляр derivedClass
, будет вызываться конструктор в baseClass
, а из его конструктора будет вызываться foo()
. Проблема в том, что конструктор baseClass вызывает свой собственный foo()
, а не переопределенный foo()
, который переопределил производный класс. Есть ли способ заставить baseClass вызывать переопределенную функцию, а не ее собственное определение функции?