0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 3
|
|||||||||||
1 | |||||||||||
Перегрузка оператора +20.05.2018, 18:28. Показов 615. Ответов 9
Метки нет (Все метки)
Привет форумчане!
Имеется следующий класс:
Спасибо.
0
|
20.05.2018, 18:28 | |
Ответы с готовыми решениями:
9
Перегрузка оператора > Перегрузка оператора + Перегрузка оператора Перегрузка оператора |
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||||||
20.05.2018, 18:33 | 2 | |||||
А в чем проблема то? В том, что вы создаете новый объект и не инициализируете str?
0
|
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 3
|
|
20.05.2018, 18:40 [ТС] | 3 |
Woldemar89,
нет. Проблема в том, что нужно просуммировать координаты, и не трогать поле str
0
|
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||||||
20.05.2018, 18:47 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 3
|
|
20.05.2018, 22:15 [ТС] | 5 |
Woldemar89,
спасибо, я это понимаю Проблема в том, что мы можем и не знать во время выполнения, какой объект окажется по левую сторону присваивания (зависит от реализации). Отсюда и вытекает вопрос - как дать понять среде выполнения, что объекту слева (pnt1), при присвоении ему нового объекта (result), нужно заресетить только определенные поля (координаты)? Пока концепция у меня только одна - скопировать в result объект pnt1, заресетить координаты у result и присвоить result объекту pnt1. Но как это делается в перегрузке оператора (не зная, какой объект по левую сторону присваивания), не хватает опыта придумать В общем, жду наставлений на путь истинный. Спасибо)
0
|
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
|
|
20.05.2018, 22:20 | 6 |
ну так продумай, как должно произойти при
1. у всех это поле пустое 2. только у какого-то одного заполнено 3. у обоих заполнено
0
|
5 / 5 / 5
Регистрация: 28.01.2017
Сообщений: 30
|
|
20.05.2018, 23:16 | 7 |
Избежать затирания поможет "отличный" интерфейс IClonable который ты должен реализовать в классе Point, методом Clone() и выполнив return this.MemberwiseClone() . Затираться ничего не будет т.к мы режем риференс . А далее делай что хочешь и суммируй только координаты.
0
|
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 58
|
||||||
21.05.2018, 02:52 | 8 | |||||
0
|
672 / 475 / 215
Регистрация: 06.09.2013
Сообщений: 1,306
|
|
21.05.2018, 05:00 | 9 |
В реализации перегруженного оператора этого сделать не получится, при его использовании переменной слева от знака равенства присваивается вновь созданный объект, возвращаемый оператором, со своим полем
str . Метод оператора знать не знает, чему присваивается возвращаемый им результат.
0
|
TheGreatCornholio
1254 / 732 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
21.05.2018, 07:52 | 10 |
0
|
21.05.2018, 07:52 | |
21.05.2018, 07:52 | |
Помогаю со студенческими работами здесь
10
Перегрузка оператора % Перегрузка оператора << Перегрузка оператора Перегрузка оператора == Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |