標籤:控制台 logs irb col include class 類構造 plane cycle
1:單一繼承是先調用基類的建構函式,然後調用衍生類別的建構函式,但多重繼承將如何調用建構函式呢?多重繼承中的基類建構函式被調用的順序以派生表中聲明的順序為準。派生表就是多重繼承定義中繼承方式後面的內容,調用順序就是按照基類名標識符的前後順序進行的。
2:代碼如下:
// 8.6.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <iostream>using namespace std;class CBicycle{public: CBicycle() { cout << "Bicycle Construct" << endl; } CBicycle(int iWeight) { m_iWeight=iWeight; } void Run() { cout << "Bicycle Run" << endl; }protected: int m_iWeight;};class CAirplane{public: CAirplane() { cout << "Airplane Construct " << endl; }; CAirplane(int iWeight) { m_iWeight=iWeight; } void Fly() { cout << "Airplane Fly " << endl; }protected: int m_iWeight;};class CAirBicycle : public CBicycle, public CAirplane{public: CAirBicycle() { cout << "CAirBicycle Construct" << endl; } void RunFly() { cout << "Run and Fly" << endl; }};void main(){ CAirBicycle ab; ab.RunFly();}View Code
運行結果:
C++入門經典-例8.6-多重繼承的構造順序