Почему мой метод переопределения не вызывается? [дубликат]C++

Программы на C++. Форум разработчиков
Anonymous
Почему мой метод переопределения не вызывается? [дубликат]

Сообщение Anonymous »

Потенциально простой вопрос. Я заметил несколько похожих вопросов, но ни один из них, похоже, не решил мою проблему, поэтому мой пост.

Base.h:

Код: Выделить всё

class Base
{
public:
Base();

protected:
virtual void Create() {}
};
Base.cpp:

Код: Выделить всё

Base::Base()
{
Create();
}
Child.h:

Код: Выделить всё

class Child : public Base
{
protected:
void Create() override;
};
Child.cpp:

Код: Выделить всё

void Child::Create()
{
// Work happens here
}
вызывается на Base вместо Child, когда я создаю Child. Почему Create не вызывается для Child?

Подробнее здесь: https://stackoverflow.com/questions/421 ... ing-called

Вернуться в «C++»