多继承原理抛砖

    xiaoxiao2021-03-25  124

    #include<iostream> using namespace std; class B { public: B() { cout<<"b构造函数"<<endl; } public: int b; protected: private: }; class B1:virtual public B { public: int b1; protected: private: }; class B2:virtual public B { public: int b2; protected: private: }; class C : public B1,public B2 { public: int c; protected: private: }; int main01() { C c1; c1.b1 = 100; c1.b2 = 200; c1.c = 300; //c1.b = 500;//继承的二义性 和虚继承的解决方案 system("pause"); return 0; } class D1 { public: int k; protected: private: }; class D2 { public: int k; protected: private: }; class E:public D1,public D2 { public: int k; protected: private: }; //多继承始终会出现问题:第一种可以解决,第二种无法解决 int main() { E e1; //e1.k;//Error e1.D1::k = 100; e1.D2::k = 200; cout<<sizeof(B)<<endl; cout<<sizeof(B1)<<endl; cout<<sizeof(B2)<<endl;//如果b2不加virtual为8 system("pause"); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-12847.html

    最新回复(0)