|
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 3
|
|
Вызов переопределенного метода из методов базового класса04.01.2015, 23:37. Показов 6502. Ответов 8
Метки нет (Все метки)
Здравствуйте, у меня есть два класса, базовый и производный. В производном классе я переопределяю два метода method1 и method2. В базовом классе method2 вызывает method1, в производном классе в реализации method2 я вызываю method2 базового класса. Вопрос, при вызове method2 производного класса приведет ли это к вызову переопределенного method1 из базового method2 или же все ограничится вызовом базового method1 ?
0
|
|
| 04.01.2015, 23:37 | |
|
Ответы с готовыми решениями:
8
Вызов наследуемых методов из базового класса Вызов методов производного класса из базового Вызов метода производного класса через обращение к методу базового класса |
|
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|||||||||||
| 04.01.2015, 23:57 | |||||||||||
|
KKS_1977, интересный вопрос, во всяком случае я думал, что верно последнее. Как оказалось, нет.
Не по теме: Честно говоря, смахивает на UB немножк Добавлено через 2 минуты А вот если специфицировать вызов функции method1() из класса Foo
2
|
|||||||||||
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
|
||
| 05.01.2015, 10:32 | ||
|
Во втором случае - это ожидаемо, т.к. использован виртуальный механизм вызова через указатель базового класса. А вот в первом, совсем непонятно с какого перепоя? Получается, что при написании методов базового класса надо пристально следить за вызовами виртуальных функций и явно указывать имя класса!
0
|
||
| 05.01.2015, 10:56 | |
|
Первый метод виртуальный, второй вызывает первый. Т.к. он виртуальный, то method2 обращается к таблице вирт. функций объекта. В обоих случаях это таблица производного класса. Уберите виртуальность первого метода, вызовется именно базовая функция.
0
|
|
|
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 3
|
|
| 05.01.2015, 12:42 [ТС] | |
|
Спасибо всем за рекомендации. Я понял, что стоит посмотреть в учебниках по C++ тему по виртуальным функциям.
0
|
|
|
Заблокирован
|
|
| 05.01.2015, 13:23 | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||||||||||||
| 05.01.2015, 13:53 | |||||||||||||||||
3
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 3
|
|
| 06.01.2015, 19:04 [ТС] | |
|
У меня возник еще один вопрос: по делу ли здесь виртуальность второго метода в базовом классе ? Я вызываю method2 вторым (см. комментарий tnk500) способом, т.е. не через указатель, а явно через объект производного класса, мне здесь не нужен полиморфизм.
0
|
|
|
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
|
|
| 06.01.2015, 19:57 | |
|
KKS_1977, да, virtual можно убрать. Вывод будет одним и тем же.
1
|
|
| 06.01.2015, 19:57 | |
|
Помогаю со студенческими работами здесь
9
Вызов метода базового класса из класса-потомка
Вызов виртуального метода базового класса из указателя производного Вызов методов базового и производного классов Вызов объектом базового класса функцию из производного класса! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|