перегрузка оператора "+" в C++
#include <iostream> using namespace std; class Test { private: int mx; float my; int medata; //some extra data public: Test() { mx = my = medata = 0; } Test(int x, float y, int edata) { mx = x; my = y; medata = edata; } void print() { cout << "x = " << mx << " y = " << my << " edata = " << medata << endl; } void modify_edata(int data) { medata = data; } Test operator+ (const Test& other) { Test sum; sum.mx = this->mx + other.mx; sum.my = this->my + other.my; return sum; } }; int main() { Test t1(10, 50.5, 0), t2(20, 60.5, 0); Test t3; t3.modify_edata(1000); t3.print(); t3 = t1 + t2; t3.print(); return 0; }Вопрос:
При написании функциональности оператора "+" мое намерение состояло бы в том, чтобы добавить несколько членов класса, но не все. То, как мы обычно пишем функцию "оператор+", перезапишет все члены класса, потому что мы создаем локальный объект в "операторе+ ()". Можем ли мы избежать этого? Как в этом случае сохранить значения других членов класса?
Что я уже пробовал:
Пытаюсь понять, как это делается. Может быть, так оно и работает. Нужно подтверждение.