170 похожих чатов

Зачем везде писать virtual если хватает этого только в основном

классе?

11 ответов

9 просмотров

Везде писать не нужно. В наследниках принято писать override/final

Я везде пишу, это наглядно. А override появился в С++11, поэтому не во всей кодовой базе доступен (да, что то ещё нужно собирать в С++03)

Алексей-Комягин Автор вопроса
Пашечка
Я везде пишу, это наглядно. А override появился в ...

так а зачем везде то писать? что значит это наглядно?

Алексей Комягин
так а зачем везде то писать? что значит это нагляд...

Я понимаю, что если вызываю этот метод, может вызваться не та реализация, которую я вижу, а что-то из наследников.

Пашечка
Я везде пишу, это наглядно. А override появился в ...

C++03? Ну давайте тогда уж отвечать на все вопросы, имея в виду C++98 на всякий случай - вдруг у кого-то кодовая база ещё на нём.

Пашечка
Я везде пишу, это наглядно. А override появился в ...

С++11 это новый С++98 Сейчас большинство кодовой базы на нём, я уверен

Пашечка
Я везде пишу, это наглядно. А override появился в ...

https://www.jetbrains.com/lp/devecosystem-2021/cpp/ C++98/03 всего 12% Пора уже забыть о нём и двигаться вперёд

Алексей-Комягин Автор вопроса
Пашечка
Я понимаю, что если вызываю этот метод, может вызв...

короче, я так понял, что когда ты каждый раз пишешь, ты не думаешь о том, указал ли ты виртуал в базовом классе, а видишь это и в классах наследниках?

Алексей Комягин
короче, я так понял, что когда ты каждый раз пишеш...

Я советую указывать virtual/override для методов и в наследниках в том числе: так можно будет предотвратить отстрел конечностей в случае, когда кто-то меняет интерфейс методов в одном из базовых классов. Предупреждаю как человек, однажды случайно создавший данный косяк когда-то в момент разработки, а обнаруживший его за день-два до релиза.

Можно не писать в наследниках...

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Карта сайта