Переопределяющая функция с enum / int - PullRequest
3 голосов
/ 18 февраля 2009

Если бы базовый класс DeriveMe имел функцию virtual void DoSomething(int) и класс, который наследовал DeriveMe с именем DerivedThat, у которого была функция void DoSomething(SomeEnum) ..., DerivedThat переопределял базовый класс DoSomething, потому что перечисления оцениваются как целые во время компиляции время в C ++?

Я мог бы попробовать это, сделав DoSomething чисто виртуальным и скомпилировав / запустив его, чтобы посмотреть, работает ли он, но это мой первый вопрос о стековом потоке, поэтому я бы просто спросил его.

1 Ответ

8 голосов
/ 18 февраля 2009

Нет, DerivedThat будет скрывать функцию из базового класса, поскольку подписи не совпадают. enum s делают не оценивают как int, так как они различного типа .

См. C ++ FAQ, разделы 23,9 и 29,19 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...