這篇文章主要介紹C++中繼承與動(dòng)態(tài)內(nèi)存分配的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)一直通過(guò)網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷(xiāo)幫助企業(yè)獲得更多客戶(hù)資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以做網(wǎng)站、成都網(wǎng)站制作、移動(dòng)互聯(lián)產(chǎn)品、成都全網(wǎng)營(yíng)銷(xiāo)服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開(kāi)發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。一.派生類(lèi)不使用new
派生類(lèi)是否需要為顯示定義析構(gòu)函數(shù),復(fù)制構(gòu)造函數(shù)和賦值操作符呢?
不需要!
首先,來(lái)看是否需要析構(gòu)函數(shù),如果沒(méi)有定義析構(gòu)函數(shù),編譯器將定義一個(gè)不執(zhí)行任何操作的默認(rèn)構(gòu)造函數(shù)。實(shí)際上,派生類(lèi)的默認(rèn)構(gòu)造函數(shù)總是要執(zhí)行一些操作:執(zhí)行自身的代碼后調(diào)用基類(lèi)析構(gòu)函數(shù)。因?yàn)槲覀兗僭O(shè)派生類(lèi)的成員不需要執(zhí)行任何特殊操作,所以默認(rèn)析構(gòu)函數(shù)是合適的。
再看復(fù)制構(gòu)造函數(shù)。默認(rèn)復(fù)制構(gòu)造函數(shù)執(zhí)行成員復(fù)制,這對(duì)于動(dòng)態(tài)內(nèi)存分配來(lái)說(shuō)是不合適的,但對(duì)于新的派生類(lèi)的成員來(lái)說(shuō)是合適的。因此只需要考慮繼承的基類(lèi)的對(duì)象。要知道,成員復(fù)制將根據(jù)數(shù)據(jù)類(lèi)型采用相應(yīng)的復(fù)制方式,因此復(fù)制類(lèi)成員或繼承的類(lèi)組件時(shí),則是使用該類(lèi)的復(fù)制構(gòu)造函數(shù)完成的。所以派生類(lèi)的默認(rèn)復(fù)制構(gòu)造函數(shù)使用基類(lèi)的顯示復(fù)制構(gòu)造函數(shù)來(lái)復(fù)制派生類(lèi)對(duì)象的基類(lèi)成員部分。因此,默認(rèn)復(fù)制構(gòu)造函數(shù)對(duì)于新的派生類(lèi)而言是合適的。
對(duì)于賦值來(lái)說(shuō),同樣道理。
二.派生類(lèi)使用new。
如果派生類(lèi)需要new操作,那么需要顯示定義析構(gòu)函數(shù),復(fù)制構(gòu)造函數(shù)和賦值操作符。
派生類(lèi)析構(gòu)函數(shù)自動(dòng)調(diào)用基類(lèi)的構(gòu)造函數(shù),故其自身的職責(zé)是對(duì)派生類(lèi)構(gòu)造函數(shù)執(zhí)行工作的進(jìn)行清理。
接下來(lái)看復(fù)制構(gòu)造函數(shù):
DerivedClass::DerivedClass(const DerivedClass& de):BaseClass(de) { //....... }
看賦值操作符:
DerivedClass::operator=(const DerivedClass& de) { if(this == &de) return *this; BaseClass::operator=(de); //.......... }
總之,當(dāng)基類(lèi)和派生類(lèi)都采用動(dòng)態(tài)內(nèi)存分配時(shí),派生類(lèi)的析構(gòu)函數(shù),復(fù)制構(gòu)造函數(shù)以及賦值操作符都必須使用想用的基類(lèi)方法來(lái)處理基類(lèi)元素。這種要求是通過(guò)三種不同的方式來(lái)滿(mǎn)足的。
1.對(duì)于析構(gòu)函數(shù),這是自動(dòng)完成的;
2.對(duì)于構(gòu)造函數(shù),這是通過(guò)在初始化成員列表中調(diào)用基類(lèi)的復(fù)制構(gòu)造函數(shù)來(lái)完成的;如果不是這樣做,將自動(dòng)調(diào)用基類(lèi)的默認(rèn)構(gòu)造函數(shù)。
3.對(duì)于復(fù)制操作符,這是通過(guò)使用作用域解析操作符顯示的調(diào)用基類(lèi)的賦值操作符來(lái)完成了。
以上是“C++中繼承與動(dòng)態(tài)內(nèi)存分配的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。