#include using std::cout; using std::cin; using std::endl; class A { protected: int a; public: A(int _a) : a(_a) { } void display() { std::cout << a << std::endl; } }; class B : virtual public A { protected: int b; public: B(int _a, int _b) : A(_a+1), b(_b) { } void display() { A::display(); std::cout << b << std::endl; } }; class C : virtual public A { protected: int c; public: C(int _a, int _c) : A(_a + 2), c(_c) { } void display() { A::display(); std::cout << c << std::endl; } }; // class D : public B, public C { // protected: // int d; // public: // D(int _a, int _b, int _c, int _d) :A(_a), B(_a, _b), C(_a, _c), d(_d){}; // void display() { // A::display(); // B::display(); // C::display(); // std::cout << d << std::endl; // } // }; int main() { // D objD(1, 2, 3, 4); // objD.display(); // cout << "---\n" << sizeof(A) << endl << sizeof(B) << endl << sizeof(C) << endl; // cout << -13 % 6 << endl; cout << "---"; endl(cout); endl(cout); cout << "---"; endl(cout); return 0; }