Я всегда задавался вопросом, почему мы кодируем
virtual void MyFunction() = 0;
и нет
pure virtual void MyFunction();
Есть ли ссылка на основу этого решения?
Я всегда задавался вопросом, почему мы кодируем
virtual void MyFunction() = 0;
и нет
pure virtual void MyFunction();
Есть ли ссылка на основу этого решения?
Ответы:
Из Проекта и Развития C ++ - Бьярн Страуструп - Аддисон-Уэсли (ISBN 0-201-54330-3) - глава 13.2.3:
В любом случае рассмотрение стандарта C ++ (§ 9.2 - члены класса)
= 0
называется pure-specifier .источник
pure
контекстную ключевое слово вы положили в конце определения функции, поэтомуvirtual void MyFunction() pure
вместо того= 0
, чтобы идти вместе сfinal
иoverride
.