47 / 47 / 23
Регистрация: 14.04.2013
Сообщений: 188
|
||||||
1 | ||||||
Почему при переопределении виртуального метода в производном классе выводится метод базового?30.08.2014, 19:58. Показов 1367. Ответов 4
Метки нет Все метки)
(
Всем добра!
Помогите разобраться почему при переопределении виртуального метода в производном классе выводится метод базового ? По идеи я ведь делаю переопределение в производном классе и базовый метод должен скрыться.
0
|
|
30.08.2014, 19:58 | |
Ответы с готовыми решениями:
4
Почему при множественном наследовании в производном классе оказывется несколько экземпляров общего базового класса
Вычислить косинус матрицы в производном классе с помощью перегруженных операций из базового
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
30.08.2014, 20:01 | 2 |
Во втором случае потеряли const
0
|
47 / 47 / 23
Регистрация: 14.04.2013
Сообщений: 188
|
|
30.08.2014, 20:14 [ТС] | 3 |
Хм, просто С.Прата пишет, что Вместо того чтобы привести к появлению двух перегруженных версий функций, это переопределение скрывает версию базового класса. А на деле получается наоборот.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
30.08.2014, 20:19 | 4 |
Это означает, что через объект класса B просто так нельзя будет вызвать константную версию A::f.
1
|
:)
![]() 4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||||||||||||||||||||
30.08.2014, 23:18 | 5 | |||||||||||||||||||||||||
Тут нет переопределения виртуального метода базового класса в производном.
Например, если Ваш компилятор поддерживает C++11, попробуйте 16 строку написать так:
Для Вашего примера можно вообще убрать virtual и результат не изменится. Т.к. в классе B нет функции, которая переопределяла бы функцию из класса A. Чтобы это случилось, надо добавить в B соответствующую реализацию:
0
|
30.08.2014, 23:18 | |
30.08.2014, 23:18 | |
Помогаю со студенческими работами здесь
5
Вызов виртуального метода базового класса из указателя производного Создайте в производном классе метод, определяющий формулу, которая изображена на рисунке Использование указателя на метод вместо виртуального метода Ошибка при вызове виртуальной функции в производном классе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |