|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.08.2015, 14:48 | #1 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
Многоуровневый полиморфизм
Всем доброго дня !
Подскажите пожалуйста почему при отсутствии в классе С метода void hgh() вызывается метод void hgh() класса В, а не А ? Код:
себе типы А,B,C и тем самым происходит вызов метода из класса на уровень выше (при наличии в этом классе замещенного метода) ? Код:
|
02.08.2015, 17:02 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Класс-наследник наследует все методы и переменные класса родителя.
|
02.08.2015, 17:09 | #3 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
|
02.08.2015, 17:39 | #4 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Потому что ты написал это: Код:
Код:
Считай, что если в классе реализуется виртуальный метод - то указатель на него помещается в таблицу (затирая предыдущее значение если оно было). Т.е. когда конструируется класс В - то затираются указатели на виртуальные методы класса А. Если затем вызывается конструктор класса С - то указатели обновляются еще раз. Это очень схематично и не совсем верно, быть может, но думаю тебе поможет |
|
02.08.2015, 20:30 | #5 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Код:
он сначала объявил чистую виртуальную функцию, делающий класс А абстрактным? а следом описывает тело?
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
02.08.2015, 20:35 | #6 | |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,529
|
Цитата:
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
|
02.08.2015, 20:48 | #7 | ||
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Цитата:
Цитата:
|
||
02.08.2015, 20:52 | #8 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Цитата:
Edit: А, если речь о том можно ли именно так описывать, то да, не по стандарту, но у MS катит. Последний раз редактировалось waleri; 02.08.2015 в 20:55. |
|
02.08.2015, 22:31 | #9 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
но это не по стандарту. по стандарту, нельзя реализовать туловище чисто-виртуальной функции-члена в декларации класса. поэтому, его следует выносить за пределы класса. например - в файл спп. |
|
02.08.2015, 23:06 | #10 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
Для ТС, virtual function. От себя добавлю, что с виртуальными функциями нужно быть осторожнее, хотя я имею привычку писать виртуальный деструктор, в отличии от стандартной библиотеки, которая его не имеет. это хаб
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 02.08.2015 в 23:08. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Многоуровневый if/else | Bender1000 | JavaScript, Ajax | 9 | 04.12.2014 15:48 |
Многоуровневый нумерованный список Word2010 | КарандашТМ | Microsoft Office Word | 3 | 13.09.2014 18:29 |
Многоуровневый список в ворде. | NewLamer&Programer | Помощь студентам | 1 | 28.06.2013 09:31 |
многоуровневый комбобокс на основе ExtJS | sashonk | JavaScript, Ajax | 0 | 02.09.2010 16:58 |
Многоуровневый заголовок (Delphi) | VadEr | Помощь студентам | 1 | 02.03.2010 14:54 |