#include <iostream>
using namespace std;
class A
{
};
class C;
class B : public A
{
public:
B& operator=(const C& rhs);
int x;
};
class C : public A
{
public:
C& operator=(const B& rhs);
int x;
};
B& B::operator=(const C& c)
{
x = c.x;
}
C& C::operator=(const B& b)
{
x = b.x;
}
int main()
{
B b;
b.x = 5;
C c;
c = b;
cout << c.x << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQQp7Cn07CgpjbGFzcyBDOwoKY2xhc3MgQiA6IHB1YmxpYyBBCnsKcHVibGljOgoJQiYgb3BlcmF0b3I9KGNvbnN0IEMmIHJocyk7CgkKCWludCB4Owp9OwoKY2xhc3MgQyA6IHB1YmxpYyBBCnsKcHVibGljOgoJQyYgb3BlcmF0b3I9KGNvbnN0IEImIHJocyk7CgkKCWludCB4Owp9OwoKQiYgQjo6b3BlcmF0b3I9KGNvbnN0IEMmIGMpCnsKCXggPSBjLng7Cn0KCkMmIEM6Om9wZXJhdG9yPShjb25zdCBCJiBiKQp7Cgl4ID0gYi54Owp9CgppbnQgbWFpbigpCnsKCUIgYjsKCWIueCA9IDU7CgkKCUMgYzsKCWMgPSBiOwoJCgkKCWNvdXQgPDwgYy54IDw8ICJcbiI7CglyZXR1cm4gMDsKfQ==