基類與派生類的建構函式

2021-06-20 10:11:18 字數 1243 閱讀 9870

**

一、預設建構函式的呼叫關係

通過下面的例子,我們來看一下基類與派生的建構函式的呼叫順序。建立時先基類後派生類。銷毀時先派生類後基類。

#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 基類和派生類的建構函式

前面我們說基類的成員函式可以被繼承,可以通過派生類的物件訪問,但這僅僅指的是普通的成員函式,類的建構函式不能被繼承。建構函式不能被繼承是有道理的,因為即使繼承了,它的名字和派生類的名字也不一樣,不能成為派生類的建構函式,當然更不能成為普通的成員函式。在設計派生類時,對繼承過來的成員變數的初始化工作也...