#include <iostream>
using namespace std;
class Foo
{
public:
Foo(){cout<<"Foo"<<endl;}
~Foo(){cout<<"~Foo"<<endl;}
int f;
};
class Bar
{
public:
Bar(){cout<<"Bar"<<endl;}
~Bar(){cout<<"~Bar"<<endl;}
int b;
};
union U
{
U(){}
~U(){}
Foo f;
int a;
Bar b;
};
int main() {
U uu;
cout<<"=========== 1" <<endl;
uu.f.f = 123;
cout<<"=========== 2" <<endl;
uu.a = 123;
cout<<"=========== 3" <<endl;
uu.b.b = 123;
cout<<"=========== 4" <<endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBGb28KewoJcHVibGljOgoJCUZvbygpe2NvdXQ8PCJGb28iPDxlbmRsO30KCQl+Rm9vKCl7Y291dDw8In5Gb28iPDxlbmRsO30KCQlpbnQgZjsKfTsKY2xhc3MgQmFyCnsKCXB1YmxpYzoKCQlCYXIoKXtjb3V0PDwiQmFyIjw8ZW5kbDt9CgkJfkJhcigpe2NvdXQ8PCJ+QmFyIjw8ZW5kbDt9CgkJaW50IGI7Cn07Cgp1bmlvbiBVCnsKCVUoKXt9Cgl+VSgpe30KCUZvbyBmOwoJaW50IGE7CglCYXIgYjsKfTsKaW50IG1haW4oKSB7CglVIHV1OwoJY291dDw8Ij09PT09PT09PT09IDEiIDw8ZW5kbDsKCXV1LmYuZiA9IDEyMzsKCWNvdXQ8PCI9PT09PT09PT09PSAyIiA8PGVuZGw7Cgl1dS5hID0gMTIzOwoJY291dDw8Ij09PT09PT09PT09IDMiIDw8ZW5kbDsKCXV1LmIuYiA9IDEyMzsKCWNvdXQ8PCI9PT09PT09PT09PSA0IiA8PGVuZGw7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==