// testProtectedVirtInheritence.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

class B;

class A
{
	friend class B;
private:
	A()
	{
		puts("A::A");
	}
};

class B : public virtual A
{
public:
	B()
	{
		puts("B::B");
	}
};

class C : public B
{
public:
	C()
	{
		puts("C::C");
	}
};

class D : public B
{
public:
	D()
	{
		puts("D::D");
	}
};

class E : public C, public D
{
public:
	E()
	{
		puts("E::E");
	}
};

int _tmain(int argc, _TCHAR* argv[])
{
	E o;
	return 0;
}

