|
0 / 0 / 0
Регистрация: 05.05.2020
Сообщений: 3
|
|||||||||||
Перегрузка операторов при наследовании04.06.2020, 18:25. Показов 3005. Ответов 7
Здравствуйте! Начал изучать наследование и столкнулся с такой проблемой. Не получается перегрузить оператор подкласса.
Имеется ли возможность подклассу сказать что нужно использовать оператор родительского класса? Или в таких случаях придется делать в лоб?
0
|
|||||||||||
| 04.06.2020, 18:25 | |
|
Ответы с готовыми решениями:
7
Поведение перегруженных операторов при наследовании Перегрузка операторов Перегрузка операторов |
|
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,212
|
|
| 04.06.2020, 18:43 | |
|
arsn99, как класс
One должен обрабатывать переменную b если он о ней ничего не знает? Не помню что делает using в плюсах, но шарп сам по себе строго типизированный, здесь такое не прокатит (и правильно разрабы сделали). Именно такая типизация позволяет избежать ошибок (чего не скажешь о плюсах). К тому же в обоих классах тип int, а если бы в классе наследнике был бы тип string - базовый класс вообще никак не справился бы.Как должна работать перегрузка у класса Two ? Сложить у обоих классов a и b ?
0
|
|
|
0 / 0 / 0
Регистрация: 05.05.2020
Сообщений: 3
|
|
| 04.06.2020, 18:51 [ТС] | |
|
Да сложить 'а' с 'а' и тоже самое с b. Я опустил в самой перегрузке класса Two сложение b, потому что с ним проблем нет)
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
| 04.06.2020, 19:02 | |
|
0
|
|
|
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,212
|
||||||
| 04.06.2020, 19:14 | ||||||
Сообщение было отмечено arsn99 как решение
Решение
Вообще задача любопытная, прямых путей к ней нет, только используя нетрадиционных подходов.
Проблема в том, что в базовом классе могут быть поля private и sealed а это усложняет задачу в разы. Если с public то можно так. Опять таки, при большом наследовании это будет большое кол-во созданных никому не нужных объектов, что чревато по затратам памяти
1
|
||||||
|
0 / 0 / 0
Регистрация: 05.05.2020
Сообщений: 3
|
|
| 04.06.2020, 19:14 [ТС] | |
|
using One::operator+((One) one, (One) second);
Мне просто интересно возможно ли вообще организовать перегрузку сложение, используя при это перегрузку базового класса и в конце вернуть все в Two. Но как я понял, я несу какую то дичь.
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 04.06.2020, 19:18 | ||
|
0
|
||
|
172 / 91 / 36
Регистрация: 22.05.2020
Сообщений: 308
|
|
| 04.06.2020, 19:44 | |
|
arsn99, такой подход является неэффективным. Представьте, что при каждом создании объекта класса One в конструкторе нужно произвести значительный объём вычислений. Подход, который вы хотите применить приведёт к тому, что для сложения двух объектов класса Two придётся вызывать конструктор One дважды: первый раз как часть оператора + базового, второй - производного. Обычно в таких случаях делают protected метод, давая возможность производным класса производить манипуляции с данными базового.
0
|
|
| 04.06.2020, 19:44 | |
|
Помогаю со студенческими работами здесь
8
Перегрузка операторов
Перегрузка операторов Перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|