多重繼承出現的問題(2)

非必要不可的話,最好避免使用多重繼承,以下例子未用多重繼承

#include <iostream> 
using namespace std; 
class base0 
{ 
    public: 
        virtual void fun0a()=0; 
    protected: 
        int var1a; 
}; 
class base1:public base0 
{ 
    public: 
        void fun0a() 
        { 
            cout<<"base1 inheritance from base0"<<endl; 
        } 
        void fun1a(); 
    protected: 
        int var1a; 
};

class base2:public base1 
{ 
    public: 
         void fun0a() 
        { 
            cout<<"base2 inheritance from base0"<<endl; 
        } 
        void fun2a(); 
    protected: 
        int var2a; 
};

class base3:public base2 
{ 
    public: 
        void fun0a() 
        { 
            cout<<"base2 inheritance from base1 and base2"<<endl; 
        }; 
    protected: 
        int var3a; 
}; 
int main() 
{ 
    base0 *Ba0; 
    base3 ba1; 
    Ba0 = &ba1; 
    Ba0->fun0a(); 
    return 0; 
}


g++ -Wall -o "testcpp" "testcpp.cpp" (在目錄 E:\1_MYPROJECT\cTest 中)
編譯成功結束。

運行結果

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章