#include <iostream>
using namespace std;
struct A
{
A()
{
cout << "A()" << endl;
}
A(int x)
{
cout << "A(int)" << endl;
}
A& operator=(int x)
{
cout << "A::operator=" << endl;
}
};
struct B
{
B() { a = 10; }
A a;
};
struct C
{
C() : a(10) {};
A a;
};
int main()
{
cout << "B" << endl;
B b;
cout << "C" << endl;
C c;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEKewoJQSgpCgl7CgkJY291dCA8PCAiQSgpIiA8PCBlbmRsOwoJfQoJCglBKGludCB4KQoJewoJCWNvdXQgPDwgIkEoaW50KSIgPDwgZW5kbDsKCX0KCQoJQSYgb3BlcmF0b3I9KGludCB4KQoJewoJCWNvdXQgPDwgIkE6Om9wZXJhdG9yPSIgPDwgZW5kbDsKCX0KfTsKCnN0cnVjdCBCCnsKCUIoKSB7IGEgPSAxMDsgfQoJQSBhOwp9OwoKc3RydWN0IEMKewoJQygpIDogYSgxMCkge307CglBIGE7Cn07CgppbnQgbWFpbigpCnsKCWNvdXQgPDwgIkIiIDw8IGVuZGw7CglCIGI7Cgljb3V0IDw8ICJDIiA8PCBlbmRsOwoJQyBjOwoJcmV0dXJuIDA7Cn0=