#include <iostream>
using namespace std;

class A {
public: 
	int test; 
    A(string text = "Constructor A") { cout << text << endl; }
};

class B:  virtual public A {
public:
    B(): A("A called from B") { cout << "Constructor B" << endl; }
};

class C : virtual public A {
public:
    C() : A("A called from C") { cout << "Constructor C" << endl; }
};

class D :  public B,  public C {
public: 
    D() { cout << "Constructor D" << endl; }
};

int main() {
	D d;
	cout << &d.B::test <<endl; 
	cout << &d.C::test <<endl; 
	cout <<&d.test<<endl; 
	return 0;
}