Я новичок в C ++, и я впервые изучаю наследование. У меня есть некоторая путаница в отношении многоуровневого наследования, которую я хотел обсудить.
Рассмотрим этот код:
class Parent
{
...
virtual void foo() {...} // virtual function
...
}
class Child
: public Parent
{
...
virtual void foo() override {...} // 1
...
}
Class GrandChild
: public Child
{
...
void foo() override {...} // 2
...
}
Теперь,
- Я знаю, что
1
переопределяет Parent
метод класса. - Но я не уверен насчет
2
. Какой метод он отменяет, тот, что в Parent
или тот, в Child
?
Пожалуйста, поправьте меня, если я ошибаюсь. Кроме того, если есть какие-либо полезные статьи по этому поводу, пожалуйста, отправьте их мне.