Какова цель использования зарезервированного слова virtual перед функциями? Если я хочу, чтобы дочерний класс переопределял родительскую функцию, я просто объявляю ту же функцию, что и void draw(){}
.
class Parent {
public:
void say() {
std::cout << "1";
}
};
class Child : public Parent {
public:
void say()
{
std::cout << "2";
}
};
int main()
{
Child* a = new Child();
a->say();
return 0;
}
Выходной сигнал равен 2.
Итак, почему зарезервированное слово virtual
необходимо в заголовке say()
?
Спасибо, куча.