#include<iostream>
using namespace std;
class W3D{
int x,y,z;
public:
W3D(int x=0, int y=0, int z=0) :x(x), y(y), z(z)
{
cout <<x;
}
W3D& operator= (W3D& w)
{
x=w.x; y=w.y; z=w.z; cout<<'='; return w;
}
W3D& operator +(W3D & t)
{
cout<<'+'; W3D suma(x+t.x, y+t.y, z+t.z);
return suma;
}
};
int main()
{
W3D a0, a1(1), a2(2);//
a0 = a2 = a0 + a1 + a2;
}// kod daje wynik 012+1+3==
// początek 012 wydaje mi się, że rozumiem. A dalej?
CiNpbmNsdWRlPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBXM0R7CmludCB4LHksejsKcHVibGljOgogICAgVzNEKGludCB4PTAsIGludCB5PTAsIGludCB6PTApIDp4KHgpLCB5KHkpLCB6KHopIAogICAgewogICAgCWNvdXQgPDx4OwogICAgfQogICAgVzNEJiBvcGVyYXRvcj0gKFczRCYgdykKICAgIHsKICAgICAgICB4PXcueDsgeT13Lnk7IHo9dy56OyBjb3V0PDwnPSc7IHJldHVybiB3OwogICAgfQogICAgVzNEJiBvcGVyYXRvciArKFczRCAmIHQpCiAgICB7CiAgICAgICAgY291dDw8JysnOyBXM0Qgc3VtYSh4K3QueCwgeSt0LnksIHordC56KTsKCSAgICByZXR1cm4gc3VtYTsKICAgICAgICB9Cn07CgppbnQgbWFpbigpCnsKCVczRCBhMCwgYTEoMSksIGEyKDIpOy8vCglhMCA9IGEyID0gYTAgKyBhMSArIGEyOwp9Ly8ga29kIGRhamUgd3luaWsgMDEyKzErMz09ICAgICAKLy8gcG9jesSFdGVrIDAxMiB3eWRhamUgbWkgc2nEmSwgxbxlIHJvenVtaWVtLiBBIGRhbGVqPwoK