#include <iostream>
using namespace std;
class three_d {
int x, y, z;
public:
three_d(int a, int b, int c) {x=a; y=b, z=c; }
const three_d& operator+(three_d op2);
friend ostream &operator<<(ostream &stream, const three_d &obj);
};
ostream &operator<< (ostream &stream, const three_d &obj)
{
stream << obj.x << ", ";
stream << obj.y << ", ";
stream << obj.z << endl;
return stream;
}
const three_d& three_d::operator+ (three_d op2)
{
return three_d(x + op2.x, y + op2.y, z + op2.z);
}
int main()
{
three_d a(1, 2, 3), b(2, 3, 4);
cout << a+b << endl; // 32
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgdGhyZWVfZCB7CiAgICBpbnQgeCwgeSwgejsKcHVibGljOgogICAgdGhyZWVfZChpbnQgYSwgaW50IGIsIGludCBjKSB7eD1hOyB5PWIsIHo9YzsgfQogICAgY29uc3QgdGhyZWVfZCYgb3BlcmF0b3IrKHRocmVlX2Qgb3AyKTsKICAgIGZyaWVuZCBvc3RyZWFtICZvcGVyYXRvcjw8KG9zdHJlYW0gJnN0cmVhbSwgY29uc3QgdGhyZWVfZCAmb2JqKTsKfTsKb3N0cmVhbSAmb3BlcmF0b3I8PCAob3N0cmVhbSAmc3RyZWFtLCBjb25zdCB0aHJlZV9kICZvYmopCnsKICAgIHN0cmVhbSA8PCBvYmoueCA8PCAiLCAiOwogICAgc3RyZWFtIDw8IG9iai55IDw8ICIsICI7CiAgICBzdHJlYW0gPDwgb2JqLnogPDwgZW5kbDsKICAgIHJldHVybiBzdHJlYW07Cn0KY29uc3QgdGhyZWVfZCYgdGhyZWVfZDo6b3BlcmF0b3IrICh0aHJlZV9kIG9wMikKewogICAgcmV0dXJuIHRocmVlX2QoeCArIG9wMi54LCB5ICsgb3AyLnksIHogKyBvcDIueik7Cn0KCmludCBtYWluKCkKewogICAgdGhyZWVfZCBhKDEsIDIsIDMpLCBiKDIsIDMsIDQpOwogICAgY291dCA8PCBhK2IgPDwgZW5kbDsgLy8gMzIKICAgIHJldHVybiAwOwp9