#include <iostream>
#include <string>
using namespace std;
class A
{
public:
int a;
};
class B: public A
{
public:
int b;
};
class C: public A
{
public:
int c;
};
class D: public B, public C
{
public:
int d;
};
void f1(B* b)
{
cout<<b->b<<" "<<b->a<<endl;
cout<<b<<endl;
}
void f2(C* c)
{
cout<<c->c<<" "<<c->a<<endl;
cout<<c<<endl;
}
int main()
{
D d;
d.c = 1;
d.b = 2;
d.C::a = 3;
d.B::a = 4;
cout<<&d<<endl;
f1(&d);
f2(&d);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEEKewpwdWJsaWM6CiAgICBpbnQgYTsKfTsKCmNsYXNzIEI6IHB1YmxpYyBBCnsKcHVibGljOgogICAgaW50IGI7Cn07CgpjbGFzcyBDOiBwdWJsaWMgQQp7CnB1YmxpYzoKICAgIGludCBjOwp9OwoKY2xhc3MgRDogcHVibGljIEIsIHB1YmxpYyBDCnsKcHVibGljOgogICAgaW50IGQ7Cn07Cgp2b2lkIGYxKEIqIGIpCnsKICAgIGNvdXQ8PGItPmI8PCIgIjw8Yi0+YTw8ZW5kbDsKICAgIGNvdXQ8PGI8PGVuZGw7Cn0KCnZvaWQgZjIoQyogYykKewogICAgY291dDw8Yy0+Yzw8IiAiPDxjLT5hPDxlbmRsOwogICAgY291dDw8Yzw8ZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBEIGQ7CiAgICBkLmMgPSAxOwogICAgZC5iID0gMjsKICAgIGQuQzo6YSA9IDM7CiAgICBkLkI6OmEgPSA0OwogICAgY291dDw8JmQ8PGVuZGw7CiAgICBmMSgmZCk7CiAgICBmMigmZCk7Cn0=