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

guozhchun
TA貢獻(xiàn)103條經(jīng)驗 獲得超76個贊
默認(rèn)調(diào)用無參的構(gòu)造函數(shù)。如果需要調(diào)用有參的構(gòu)造函數(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?*/?}?時,調(diào)用?A?類的?A()?構(gòu)造函數(shù) //?如果定義?B?類構(gòu)造函數(shù)為?B():A(3){?/*?other?code?*/?},?或者?B(int?b):?A(b){?/*?other?code?*/?}時,調(diào)用?A?類的?A(int?a)構(gòu)造函數(shù)

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

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

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