#include <iostream>
using namespace std;
struct Base {
int x;
Base(int x) : x(x) {}
};
struct Derived1 : public Base {
Derived1(int x) : Base(x) {}
};
struct Derived2 : public Base {
Derived2(int x) : Base(x) {}
};
int main() {
Derived1 d1(5);
Derived2 d2(10);
cout << d1.x << " " << d2.x << endl;
((Base&)d1) = (Base&)d2;
cout << d1.x << " " << d2.x << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEJhc2UgewoJaW50IHg7CglCYXNlKGludCB4KSA6IHgoeCkge30KfTsKc3RydWN0IERlcml2ZWQxIDogcHVibGljIEJhc2UgewoJRGVyaXZlZDEoaW50IHgpIDogQmFzZSh4KSB7fQp9OwpzdHJ1Y3QgRGVyaXZlZDIgOiBwdWJsaWMgQmFzZSB7CglEZXJpdmVkMihpbnQgeCkgOiBCYXNlKHgpIHt9Cn07CgppbnQgbWFpbigpIHsKICAgIERlcml2ZWQxIGQxKDUpOwogICAgRGVyaXZlZDIgZDIoMTApOwogICAgY291dCA8PCBkMS54IDw8ICIgIiA8PCBkMi54IDw8IGVuZGw7CiAgICAoKEJhc2UmKWQxKSA9IChCYXNlJilkMjsKICAgIGNvdXQgPDwgZDEueCA8PCAiICIgPDwgZDIueCA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=