Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
perevezenzev
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 129
#1

Переопределение методов - C++

07.06.2015, 14:10. Просмотров 303. Ответов 2
Метки нет (Все метки)

Как вызвать переопределенный (не перегруженный) метод из производного класса?
C++
1
2
3
4
5
6
    Base* obj_1 = new Der1;
    obj_1->VirtualFunc();   //Der1::VirtualFunc
    obj_1->NoVirtualFunc(); //Base::NoVirtualFunc
 
 
    obj_1->Der1::NoVirtualFunc(); //ошибка
Base - базовый, Der1 - производный от базового.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2015, 14:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переопределение методов (C++):

переопределение защищенных методов - C++
При вызове метода basePubMethod() класса ChildClass возвращается 0. Как заставить его возвращать 1, не переопределяя basePubMethod() ? ...

переопределение методов класса в массиве - C++
Всем привет. У меня появилась проблема, которую я не могу решить. Казалось бы все просто, но гугл помочь не смог, или я чего-то упорно не...

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов - C++
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

переопределение - C++
Необходимо реализовать класс Stack, соответствующий стеку чисел. Для хранения стека внутри класса используется массив. Размер массива...

Переопределение операции [] - C++
В классе строка переопределить операцию , которая будет возвращать символ по индексу, который передан в квадратные скобки. Помогите, не...

Переопределение массива - C++
Как переопределить массив в С++ с сохранением старых значений? Код навроде такого int Size = 1; int i = 0; int Array* = new...

2
zss
Модератор
Эксперт С++
6536 / 6098 / 2008
Регистрация: 18.12.2011
Сообщений: 15,864
Завершенные тесты: 1
07.06.2015, 14:16 #2
C++
1
  dynamic_cast<Der1*>(obj_1)->NoVirtualFunc();
1
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
07.06.2015, 14:18 #3
Цитата Сообщение от perevezenzev Посмотреть сообщение
obj_1->Der1::NoVirtualFunc(); //ошибка
Для того, чтобы такой вызов был разрешен, тип указателя должен соответствовать. В Base нет информации о методах Der1, поэтому ошибка. А вот наоборот - будет работать (если, имея указатель на производный класс, нужно вызвать сокрытый метод базового).
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2015, 14:18
Привет! Вот еще темы с ответами:

Переопределение операторов С++ - C++
Помогите разобраться с переопределением операторов, как что и куда записывается, какие параметры. Если можно, ссылку на полезную статью, в...

Переопределение операторов - C++
Еще раз об этом интересном вопросе. У меня есть матрицы , условно назовём их тип matrix, есть библиотека, имеющая в своём составе функции...

Переопределение оператора - C++
У меня есть класс вектора. Надо переопределить оператор умножения числа на вектор. class myvector { private: int x,y,z; public:...

Переопределение операций - C++
Здравствуйте, необходимо осуществить переопределение операции сложения, не понимаю как применять на практике переопределение, заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru