C++中存在多重繼承和多繼承,兩者名字相近卻是完全不同的兩個概念:
多重繼承:是至少有一個派生類又作為基類被繼承。例如A——派生——B ,B——又派生——C。這就是最簡單的多重繼承。
多繼承 :是一個派生類繼承了兩個基類;
例如:
class Man :public Worker,public Person {public: Man(string name,string code):Worker(code),Person(name){ cout << "Man()" << endl; } ~Man() { cout << "~Man()" << endl; }};這個就是Man這個類繼承了Worker和Person兩個基類。這里有一個特點,按道理初始化列表的執行順序是從右邊到左邊(這個我在上面的C++學習一初始化列表中驗證過),但是這里實際的構造函數調用順序卻是,先Worker()再Person()。順序是按照你寫繼承代碼的順序來的,也就是下面這行代碼里面,Worker(code)和Person(name)的先后順序。先Worker就先調用Worker的構造函數
Man(string name,string code):Worker(code),Person(name)
新聞熱點
疑難解答