//聯(lián)系人:石虎?QQ:1224614774?昵稱:嗡嘛呢叭咪哄
一、多重繼承:
定義:派生類繼承多個基類,派生類為每個基類(顯式或隱式地)指定了訪問級別——public篇裁、protected?或private球碉。
?class?Panda :?public?Bear,?public?Endangered {
?? }
二炫掐、構(gòu)造:
?1.?派生類的對象包含每個基類的基類子對象焦读。
?2.?派生類構(gòu)造函數(shù)初始化所有基類(多重繼承中若沒有顯式調(diào)用某個基類的構(gòu)造函數(shù)带兜,則編譯器會調(diào)用該基類默認(rèn)構(gòu)造函數(shù)),派生類只能初始化自己的基類吨灭,并不需要考慮基類的基類怎么初始化刚照。
?3.?多重繼承時,基類構(gòu)造函數(shù)按照基類構(gòu)造函數(shù)在類派生列表中的出現(xiàn)次序調(diào)用喧兄。
?析構(gòu):總是按構(gòu)造函數(shù)運(yùn)行的逆序調(diào)用析構(gòu)函數(shù)无畔。(基類的析構(gòu)函數(shù)最好寫成virtual,否則再子類對象銷毀的時候吠冤,無法銷毀子類對象部分資源浑彰。)假定所有根基類都將它們的析構(gòu)函數(shù)適當(dāng)定義為虛函數(shù),那么拯辙,無論通過哪種指針類型刪除對象郭变,虛析構(gòu)函數(shù)的處理都是一致的。
三涯保、拷貝構(gòu)造/賦值:
? ?如果要為派生類編寫拷貝構(gòu)造函數(shù)诉濒,則需要為調(diào)用基類相應(yīng)拷貝構(gòu)造函數(shù)并為其傳遞參數(shù),否則只會拷貝派生類部分夕春。
四未荒、深拷貝與淺拷貝:
1.?淺拷貝:默認(rèn)的復(fù)制構(gòu)造函數(shù)只是完成了對象之間的位拷貝,也就是把對象里的值完全復(fù)制給另一個對象及志,如A=B片排。這時,如果B中有一個成員變量指針已經(jīng)申請了內(nèi)存速侈,那A中的那個成員變量也指向同一塊內(nèi)存率寡。
?這就出現(xiàn)了問題:當(dāng)B把內(nèi)存釋放了(如:析構(gòu)),這時A內(nèi)的指針就是野指針了倚搬,出現(xiàn)運(yùn)行錯誤冶共。
2.?深拷貝:自定義復(fù)制構(gòu)造函數(shù)需要注意,對象之間發(fā)生復(fù)制潭枣,資源重新分配比默,即A有5個空間,B也應(yīng)該有5個空間盆犁,而不是指向A的5個空間命咐。