#include <iostream>
using namespace std;
class Member
{
public:
Member() { std::cout << " iam member!" << std::endl; }
};
class A
{
public:
A() { std::cout << " A" << std::endl; }
};
class B
{
public:
B() { std::cout << " B" << std::endl; }
};
class C
{
public:
C() { std::cout << " C" << std::endl; }
};
class D : public A, public virtual B
{
Member m;
public:
D() { std::cout << " D" << std::endl; }
};
int main() {
D d;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTWVtYmVyCnsKcHVibGljOgoJTWVtYmVyKCkgeyBzdGQ6OmNvdXQgPDwgIiBpYW0gbWVtYmVyISIgPDwgc3RkOjplbmRsOyB9Cn07CgpjbGFzcyBBCnsKcHVibGljOgoJQSgpIHsgc3RkOjpjb3V0IDw8ICIgQSIgPDwgc3RkOjplbmRsOyB9Cn07CgpjbGFzcyBCCnsKcHVibGljOgoJQigpIHsgc3RkOjpjb3V0IDw8ICIgQiIgPDwgc3RkOjplbmRsOyB9CQp9OwoKY2xhc3MgQwp7CnB1YmxpYzoKCUMoKSB7IHN0ZDo6Y291dCA8PCAiIEMiIDw8IHN0ZDo6ZW5kbDsgfQkKfTsKCgpjbGFzcyBEIDogcHVibGljIEEsICBwdWJsaWMgdmlydHVhbCBCCnsKCU1lbWJlciBtOwoJCnB1YmxpYzoKCUQoKSB7IHN0ZDo6Y291dCA8PCAiIEQiIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKCgoKaW50IG1haW4oKSB7CglEIGQ7CgkKCXJldHVybiAwOwp9