實(shí)例化子類對(duì)象時(shí),先進(jìn)行父類構(gòu)造函數(shù),如果父類構(gòu)造函數(shù)中既有默認(rèn)構(gòu)造函數(shù)也有有參構(gòu)造函數(shù),那么會(huì)調(diào)用哪個(gè)呢?
4 回答
已采納

guozhchun
TA貢獻(xiàn)103條經(jīng)驗(yàn) 獲得超76個(gè)贊
默認(rèn)調(diào)用無參的構(gòu)造函數(shù)。如果需要調(diào)用有參的構(gòu)造函數(shù),需要自己指定。格式為:派生類名(形參表) : 基類名(實(shí)參表)
例如:
class?A { ????public: ????????A(); ????????A(int?a); }; class?B { ????public: ????????B(); ????????B(int?b); }; //?如果定義?B?類構(gòu)造函數(shù)為?B(){?/*?other?code?*/?},或者?B(int?b){?/*?other?code?*/?}?時(shí),調(diào)用?A?類的?A()?構(gòu)造函數(shù) //?如果定義?B?類構(gòu)造函數(shù)為?B():A(3){?/*?other?code?*/?},?或者?B(int?b):?A(b){?/*?other?code?*/?}時(shí),調(diào)用?A?類的?A(int?a)構(gòu)造函數(shù)

Asan_Cai
TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果沒有使用初始化列表顯示調(diào)用父類構(gòu)造函數(shù),就調(diào)用父類默認(rèn)構(gòu)造函數(shù)

慕神3775235
TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超7個(gè)贊
(1)如果參數(shù)有默認(rèn)值,則調(diào)用時(shí)子類構(gòu)造函數(shù)不進(jìn)行向父類構(gòu)造函數(shù)傳參就會(huì)發(fā)生錯(cuò)誤 (2)如果參數(shù)無默認(rèn)值,調(diào)用時(shí)傳參的是調(diào)用有參數(shù)的,不調(diào)用時(shí)調(diào)用的是默認(rèn)的父類構(gòu)造函數(shù)

亂舞的旋律
TA貢獻(xiàn)105條經(jīng)驗(yàn) 獲得超38個(gè)贊
看你怎么實(shí)例化子類咯,如果 子類參數(shù)設(shè)置是傳給父類的構(gòu)造函數(shù)的話寫法正確的那就是有參的啊,如果子類沒有參數(shù),那子類父類肯定都是默認(rèn)構(gòu)造
- 4 回答
- 0 關(guān)注
- 3181 瀏覽
添加回答
舉報(bào)
0/150
提交
取消