Переопределение против Виртуального
Какова цель использования зарезервированного слова 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()
?
Огромное спасибо.