1.所謂簡單派生類:就是指派生類中不包含基類的內嵌物件的派生類
簡單總結如下:
派生類無法繼承的基類資料成員,不能出現的初始化列表中,即便是基類中protected型別的資料成員,可以在派生類中的訪問,但是還是不能直接出現在初始化列表中
這就變得非常清楚了、放在初始化列表中的只能是:
該派生類類名** 基類的建構函式**
在建構函式體內是該派生類新增的資料成員
而基類中的private和protected成員只能寫在派生類建構函式體中且用一般賦值的語法寫!
1.與派生類的建構函式初始化列表的先後順序無關,是按如下的順序
** 1. 基類的建構函式**
** 2. 內嵌基類物件的建構函式**
** 3. 派生類自己的建構函式**
** 4. 函式體內**
** 析構時:與構造時順序相反!**
列印出:#include
using
namespace std;
classa}
;classb:
public a //第一步
;b::b(
int a,
int b,
int c):a
(a),
a1(b)
//自己本身
void
main()
呼叫a呼叫a
呼叫b2.當含有多個基類和內嵌物件時
先舉個栗子:
結果如下:baclassa~
a()}
;classb~
b()}
;classc~
c()}
;classdd
(int a):d
(a)~d(
)};classe:
public b,
public a~e
()};
classf:
public e,
public a~f
()};
intmain
(int argc, _tchar* ar**)
d1cea
cd2f
C 派生類建構函式
派生類構造函式呼叫順序 1.基類的建構函式.2.子物件類的建構函式.3.派生類建構函式.當物件被刪除時,派生類的析構函式被執行,由於析構函式也不能被繼承,因此在執行派生類的析構函式時,基類的析構函式也會被呼叫。先執行派生類的析構函式,再執行子物件類的析構函式,再執行基類的建構函式。include u...
C 派生類的建構函式
1,在使用建構函式的時候,作為派生類會有某些特殊問題。其根源就是建立派生類的時候會有多個建構函式起作用。2,c 中例項化的類的建構函式本身不能初始化類,還必須呼叫基類的建構函式。3,建構函式的呼叫順序是自上向下的,實際上是編譯器先自下而上的尋找建構函式,然後再自上而下的執行 直到達到要例項化的類為止...
C 派生類的建構函式
基類的建構函式不能被繼承,在宣告派生類時,對繼承過來的成員變數的初始化工作也要由派生類的建構函式來完成。所以在設計派生類的建構函式時,不僅要考慮派生類新增的成員變數,還要考慮基類的成員變數,要讓它們都被初始化。解決這個問題的思路是 在執行派生類的建構函式時,呼叫基類的建構函式。下面的例子展示了如何在...