基類一定要寫預設建構函式(無引數的建構函式),因為無法預見派生類的物件是否呼叫預設建構函式。
如果派生類物件呼叫預設建構函式,則構造基類物件時只能呼叫預設建構函式,如果不寫,將會出錯。
建構函式和析構函式均不被繼承。
建構函式的呼叫順序:
(1)基類建構函式,按照被繼承時宣告的順序;
(2)成員物件初始化,按照類中宣告的順序;
(3)派生類建構函式體。
#include usingnamespace
std;
class
point
point(point&p);
int getx()
int gety()
private
:
intx,y;
};point::point(point&p)
//形參為point類物件的函式
void
fun1(point p)
//返回值為point類物件的函式
point fun2()
intmain()
C 建構函式在繼承過程中的執行順序
using system namespace zoo public animal protected animal string skincolor 定義子類 horse 繼承父類 animal public class horse animal double weight string publi...
C 中多重繼承建構函式執行順序
1 1 include 2 include 3 4using namespace std 56 classa11 12 classb17 18 class c public b,publica24 25 intmain 輸出 b ac 分析 多重繼承與單繼承類似,也是先執行基類建構函式。多個基類之間...
繼承下建構函式的執行順序
這裡先給出結論,在貼出 與執行結果 乙個派生類建構函式的執行順序如下 第一步執行 虛擬基類的建構函式 多個虛擬基類則按照繼承的順序執行建構函式 第二步執行 基類的建構函式 多個普通基類也按照繼承的順序執行建構函式 第三步執行 類型別的成員物件的建構函式 按照初始化順序 第四部執行 派生類自己的建構函...