Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Super
- {
- int superVal;
- public:
- Super() : superVal{ 333 } { std::cout << "Super DEFAULT ctor\n"; }
- Super(int superValP) : superVal{ superValP } { std::cout << "Super ctor superVal\n"; }
- ~Super() { std::cout << "Super dtor\n"; }
- void info() { std::cout << "Super info : "<< superVal << '\n'; }
- };
- class BaseA: virtual public Super
- {
- public:
- int valA;
- public:
- BaseA() : Super{11},valA { 1 } { std::cout << "BaseA DEFAULT ctor\n"; }
- BaseA(int valAP) : valA{valAP} { std::cout << "BaseA ctor valA\n"; }
- ~BaseA() { std::cout << "BaseA dtor\n"; }
- };
- class BaseB : virtual public Super
- {
- public:
- int valB;
- public:
- BaseB() :Super{ 22 },valB{2} { std::cout << "BaseB DEFAULT ctor\n"; }
- BaseB(int valBP) : valB{ valBP } { std::cout << "BaseA ctor valB\n"; }
- ~BaseB() { std::cout << "BaseB dtor\n"; }
- };
- class MultiChild : public BaseA, public BaseB
- {
- protected:
- int childVal;
- public:
- MultiChild() : Super{424242}, childVal { 3 } { std::cout << "MultiChild DEFAULT ctor\n"; }
- MultiChild(int childValP) : Super{ 424242 }, childVal{ childValP } { std::cout << "BaseMultiChildA ctor childValP\n"; }
- ~MultiChild() { std::cout << "MultiChild dtor\n"; }
- };
- int main()
- {
- MultiChild mChild{ 111 };
- // mChild.valA;
- mChild.BaseA::info();
- mChild.BaseB::info();
- mChild.info();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement