**
一、預設建構函式的呼叫關係
通過下面的例子,我們來看一下基類與派生的建構函式的呼叫順序。建立時先基類後派生類。銷毀時先派生類後基類。
#include #include using namespace std;
class cbase
~cbase()
};class cderive : public cbase
~cderive()
};int main ( )
二、有引數時的傳遞
當有引數時,引數必須傳送給基類。注意例子中傳遞的方法(第8行、第19行)。
#include #include using namespace std;
class cbase
~cbase()
};class cderive : public cbase
~cderive()
};int main ( )
三、祖孫三代的引數傳遞
當有三層繼承時,引數要一層一層地傳遞下去(第30行、第19行、第8行)。
#include #include using namespace std;
class cbase
~cbase()
};class cderive : public cbase
~cderive()
};class cson : public cderive
~cson()
};int main ( )
四、多重繼承的引數傳遞
多重繼承時引數的傳遞方法和上面一樣,要注意的是兩個基類的順序。決定2個基類的順序是知27行。將27行的cbase1和cbase2的順序交換一下,其結果中base1和base2的順序也隨之改變,與第30行無關。
#include #include using namespace std;
class cbase1
~cbase1()
};class cbase2
~cbase2()
};class cderive : public cbase1, public cbase2
~cderive()
};int main ( )
派生類與基類的有參建構函式
1.派生類建構函式要對本類中新增成員進行初始化,對基類繼承的成員,自動呼叫基類建構函式進行初始化。2.當基類宣告有帶形參的建構函式時,派生類也應宣告帶形參的建構函式,並將引數傳遞給基類建構函式。引數傳遞必須放在初始化列表中。3.當基類中宣告有預設形式的建構函式,派生類建構函式可以不向基類建構函式傳遞...
基類與派生類
初學c 的時候,很多人都很頭疼各種訪問標號下基類與派生類的關係,其實,死記硬背肯定不是乙個好的辦法,要知道它們之間的關係,先要分析一下訪問標號是如何產生的 在沒有繼承之前,類的只有兩類使用者 類本身和類的使用者。把類成員通過public和private劃分恰好體現了這一分割 類的使用者只能訪問類的p...
C 基類和派生類的建構函式
前面我們說基類的成員函式可以被繼承,可以通過派生類的物件訪問,但這僅僅指的是普通的成員函式,類的建構函式不能被繼承。建構函式不能被繼承是有道理的,因為即使繼承了,它的名字和派生類的名字也不一樣,不能成為派生類的建構函式,當然更不能成為普通的成員函式。在設計派生類時,對繼承過來的成員變數的初始化工作也...