0 / 0 / 0
Регистрация: 24.08.2017
Сообщений: 2
|
||||||
1 | ||||||
Почему объект производного класса не видит префиксный оператор из базового класса?24.08.2017, 16:34. Просмотров 1731. Ответов 9
Короче создал я базовый класс с перегруженным префиксным оператором ++. Потом чтоб его затюнинговать, сделал ему производный класс с перегруженным постфиксным оператором ++. После этого объект производного класса перестал видеть префиксный оператор из базового класса( Никак не могу понять почему он его не видит?
в строчке 30) ++c; это и подчеркивает компилятор
0
|
|
24.08.2017, 16:34 | |
Как сложить объект базового класса с объектом производного(наследуемого класса) Указатель на объект базового класса и адрес объекта производного класса как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? Отрабатывает оператор базового, а не производного класса |
|
278 / 250 / 209
Регистрация: 14.11.2016
Сообщений: 946
|
||||||
24.08.2017, 17:25 | 2 | |||||
shabbaranks, наследование класса подразумевает только наследование переменных и функций-методов класса, но не как не операторы для работы с ними.
Используй динамическое приведение типов вверх по иерархии классов. В случае если приведение не возможно dynamic_cast вернет NULL.
0
|
13712 / 7335 / 1751
Регистрация: 30.01.2014
Сообщений: 12,302
|
|
24.08.2017, 18:53 | 3 |
![]() Решение
Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа
Добавлено через 12 минут Если не секрет, где такое написано? Больше всего интересует почему операторы-члены класса не считаются функциями-членами класса. ![]()
1
|
278 / 250 / 209
Регистрация: 14.11.2016
Сообщений: 946
|
||||||
24.08.2017, 19:46 | 4 | |||||
DrOffset, ааа Lool
![]() Понимал так, что функции-методы - это функции класса которые можно вызвать для объекта MyClass.func() , или MyClass->func() , либо закрытые функции.Мда... Вот это прикол ![]() shabbaranks, тогда можно делать ещё так. Явно указывать оператор предка:
1
|
13712 / 7335 / 1751
Регистрация: 30.01.2014
Сообщений: 12,302
|
||||||
24.08.2017, 19:53 | 6 | |||||
Ты и операторы точно так же вызвать можешь
![]()
0
|
0 / 0 / 0
Регистрация: 24.08.2017
Сообщений: 2
|
|
24.08.2017, 22:50 [ТС] | 7 |
Спасибо, DrOffset, теперь понял)) по-моему это минус, который противоречит принципу перегрузки(
0
|
13712 / 7335 / 1751
Регистрация: 30.01.2014
Сообщений: 12,302
|
|
24.08.2017, 23:55 | 8 |
Нет, не противоречит. Перегружаются функции из одной области видимости, а у нас тут разные.
0
|
278 / 250 / 209
Регистрация: 14.11.2016
Сообщений: 946
|
|
25.08.2017, 10:45 | 9 |
Да это-то знал, но не думал, что оператор базового можно явно тоже вызывать, т.к. был 6мес убежден в том, что он не наследуется
![]()
0
|
25.08.2017, 10:48 | 10 |
shabbaranks, сразу видно что лафору читаешь, читай липпмана, там объяснен этот момент
1
|
25.08.2017, 10:48 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Ссылка базового класса на объект производного класса
Вызов метода производного класса через обращение к методу базового класса Вызвать конструктор производного класса без конструктора базового класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |