|
9 / 9 / 0
Регистрация: 07.10.2011
Сообщений: 187
|
|
Чем отличается override от virtual?22.12.2015, 16:40. Показов 18539. Ответов 76
Метки нет (Все метки)
Так и не понял.
Если указать метод как override, то он переопределит метод базового класса Для этого метод базового класса должен быть virtual? Но virtual методы и без этого переопределяются, разве не так?
0
|
|
| 22.12.2015, 16:40 | |
|
Ответы с готовыми решениями:
76
Зачем использовать virtual и override? Зачем нужен virtual и override |
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||||
| 23.12.2015, 15:49 | |||||||
|
Кликните здесь для просмотра всего текста
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 23.12.2015, 15:56 | |
|
1
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 23.12.2015, 16:17 | |||
|
и там в комменте нечто другое сказано:
0
|
|||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 23.12.2015, 16:18 | |
|
Зачем вообще ограничивать программистов делая свой метод final ? Если кто-то пытается унаследовать класс, то он знает что делает переопределяя поведение)
0
|
|
|
Неэпический
|
|||||||
| 23.12.2015, 16:25 | |||||||
![]() также с помощью final, например, можно ограничить наследование
0
|
|||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 23.12.2015, 16:26 | ||
|
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 23.12.2015, 16:33 | ||
|
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 23.12.2015, 16:36 | ||
|
Потому, что даже если этот метод private, в наследнике его можно переопределить. Вызвать нельзя, а переопределить можно. private - детали реализиции которые мы можем менять ни у кого не спрашивая и хорошо бы лишить других возможности их изменить не спрашивая у нас.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 23.12.2015, 19:20 | ||
|
метода может нарушить логику работы (например - фабричного метода) в этом случае final будет очень кстати.
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 23.12.2015, 19:55 | ||
|
я не понял как base* getMyTypePart() const переопределение поломает фабрику. Или темболее описание новой логики сборки используя baseFactory методы
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 23.12.2015, 20:51 | ||
|
разные модули - разные игрушки. разные картинки, разная музыка, разные эффекты разное шоу, которое они показывают игрокам. но смысл всех игрушек один и тот же. так что можно сказать, что они - клоны друг друга. однако вычисления связанные с расчетами выигрышей/проигрышами игроков(деньги) у них у всех одинковый, и зашит в базовом классе. поэтому, делаем общую базу, от которой наследуются модули. основной функционал весь остается в базе, а модули реализуют лишь мелкие детальки. далее: есть движок, который ничего не знает о конкретной базе. он предназначен для работы с различными базами. то бишь, на нем и слоты, и покер отыграть можно, и рулетку, и тп. соотвественно - все через интерфейсы. соотвественно, технически, ничто не мешает модулю переопределить не тот виртуальный метод интерфейса движка, что бы вмешаться в бизнес-логику базы от которой он унаследован. соотвественно, деньги казино под угрозой. вот если бы наследники в принципе не могли бы переопределить то, чего им переопределять не следует, тогда можно было бы не бояться, что наследники ничайно поломают базовый класс. а поскольку такая ситуация не допустима в принципе, то в условиях отсутствия final, пришлось бы заморачиваться: в место наследования агрегацию использовать, например. а так буковок мало, и все безопасно.
1
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 24.12.2015, 01:07 | |||
![]() Кстати я нашел вот что: http://herbsutter.com/2013/04/... -variable/ Но если взглянуть там на второй комментарий и число лайков/дизлайков (43/4), то можно убедиться, что множество народу не поддерживает такой стиль.
1
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 24.12.2015, 07:59 | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 24.12.2015, 14:24 | ||
|
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 24.12.2015, 14:45 | ||
|
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 24.12.2015, 15:03 | ||
|
А если используется, то либо friend, либо member.
0
|
||
| 24.12.2015, 15:03 | |
|
Помогаю со студенческими работами здесь
77
Обязательно ли описывать функцию с override, если в базовом классе уже есть метод с virtual?
В чем различие применение модификатора override и new? Чем отличается =- от -= Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|