Ошибки, баги, вопросы - страница 3660
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
«f» уже является виртуальным из базового класса.
Непонятно, для чего дается такая вольность для написания virtual. Чтение кода не позволяет сразу понять, если бы не было использовано override.
После того обсуждения я никогда не указываю virtual при переопределении метода, но я всегда обязательно указываю override. Больше 2х лет, как я ни разу не указывал virtual для метода, который уже виртуальный из базового класса.
Для меня это плохая практика при чтении кода.
Для меня это плохая практика при чтении кода.
Почему плохая? Разве override не достаточно, чтобы понять что метод виртуальный (и перегруженный переопределенный)?
[edit] Если принять за правило обязательно указывать override, то я нахожу это очень удобным.Почему плохая? Разве override не достаточно, чтобы понять что метод виртуальный (и перегруженный)?
Почему плохая? Разве override не достаточно, чтобы понять что метод виртуальный (и перегруженный)?
override позволяет понять, что это виртуальный метод. Но два нюанса.
Чтобы понять, что он виртуальный, не достаточно.
Если вы укажите override для не виртуального метода, то вы получите ошибку компиляции. Если нет ошибки компиляции и есть override - метод гарантировано виртуальный.
(и перегруженный)
Если вы укажите override для не виртуального метода, то вы получите ошибку компиляции
Не "перегруженный", "переопределённый".
Исправил опечатку, спасибо.
Нет
Докажите примером, пожалуйста
override позволяет понять, что это виртуальный метод. Но два нюанса.
Думаю, это дело привычки и договоренностей в команде (моя команда состоит из меня одного, я сам с собой договариваюсь).