#include <iostream>
#include <iomanip>
using namespace std;
struct A { int a; };
struct B { int b; };
struct C { int c; };
struct ABC
: public A
, public B
, public C
{
int abc;
};
int main()
{
ABC* abc = new ABC;
cout << "abc: " << abc << endl;
A* a = static_cast<A*>(abc);
cout << "a: " << a << endl;
B* b = static_cast<B*>(abc);
cout << "b: " << b << endl;
C* c = static_cast<C*>(abc);
cout << "c: " << c << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgQSB7IGludCBhOyB9OwpzdHJ1Y3QgQiB7IGludCBiOyB9OwpzdHJ1Y3QgQyB7IGludCBjOyB9OwoKc3RydWN0IEFCQwogICAgOiBwdWJsaWMgQQogICAgLCBwdWJsaWMgQgogICAgLCBwdWJsaWMgQwp7CiAgICBpbnQgYWJjOwp9OwoKaW50IG1haW4oKQp7CglBQkMqIGFiYyA9IG5ldyBBQkM7Cgljb3V0IDw8ICJhYmM6ICIgPDwgYWJjIDw8IGVuZGw7CglBKiBhID0gc3RhdGljX2Nhc3Q8QSo+KGFiYyk7Cgljb3V0IDw8ICJhOiAiIDw8IGEgPDwgZW5kbDsKCUIqIGIgPSBzdGF0aWNfY2FzdDxCKj4oYWJjKTsKCWNvdXQgPDwgImI6ICIgPDwgYiA8PCBlbmRsOwoJQyogYyA9IHN0YXRpY19jYXN0PEMqPihhYmMpOwoJY291dCA8PCAiYzogIiA8PCBjIDw8IGVuZGw7Cn0=