調(diào)用基類構(gòu)造函數(shù) C 派生類的構(gòu)造函數(shù)定義?
C 派生類的構(gòu)造函數(shù)定義?是的,構(gòu)造函數(shù)不是可調(diào)用函數(shù)。它只用于其類的對(duì)象。它在創(chuàng)建時(shí)用于成員初始化,所以它只服務(wù)于這個(gè)類的對(duì)象。如果基類的構(gòu)造函數(shù)是無參數(shù)的(默認(rèn)構(gòu)造函數(shù)),則不需要定義派生類。但
C 派生類的構(gòu)造函數(shù)定義?
是的,構(gòu)造函數(shù)不是可調(diào)用函數(shù)。它只用于其類的對(duì)象。它在創(chuàng)建時(shí)用于成員初始化,所以它只服務(wù)于這個(gè)類的對(duì)象。如果基類的構(gòu)造函數(shù)是無參數(shù)的(默認(rèn)構(gòu)造函數(shù)),則不需要定義派生類。但是,如果基類的構(gòu)造函數(shù)有參數(shù),并且在定義時(shí)無法確定派生類,即參數(shù)來自應(yīng)用環(huán)境,則派生類需要編寫相應(yīng)的參數(shù)構(gòu)造函數(shù),并將參數(shù)傳遞給基類的初始化;如果基類的構(gòu)造函數(shù)中的參數(shù)可以由派生類確定,那么常量將在派生類的非參數(shù)構(gòu)造函數(shù)中定義,并傳遞給基類初始化。例如,
c 中為什么基類中只有帶參數(shù)的構(gòu)造函數(shù)時(shí),派生類中一定要顯示定義構(gòu)造函數(shù),并寫出基類的構(gòu)造函數(shù)及參數(shù)?
因?yàn)樵趧?chuàng)建派生類對(duì)象時(shí)會(huì)調(diào)用基類的構(gòu)造函數(shù),所以在基類未定義構(gòu)造函數(shù)時(shí)會(huì)調(diào)用默認(rèn)的無參數(shù)構(gòu)造函數(shù)。
僅定義參數(shù)化構(gòu)造函數(shù)時(shí)調(diào)用參數(shù)化構(gòu)造函數(shù),因此當(dāng)派生類未將參數(shù)傳遞給基類時(shí)會(huì)發(fā)生錯(cuò)誤。解決方案:可以在基類中重載非參數(shù)構(gòu)造函數(shù),或者為參數(shù)構(gòu)造函數(shù)的參數(shù)設(shè)置默認(rèn)值。