// 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; }