首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問(wèn) | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書(shū)資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

計(jì)算機(jī)等級(jí)考試二級(jí)C++各章內(nèi)容摘要:第7章

  2、派生類的析構(gòu)函數(shù)與構(gòu)造函數(shù)相同,派生類的析構(gòu)函數(shù)在執(zhí)行過(guò)程中也要對(duì)基類和成員對(duì)象進(jìn)行操作,但它的執(zhí)行過(guò)程與構(gòu)造函數(shù)嚴(yán)格相反,即:(1)對(duì)派生類新增普通成員進(jìn)行清理。(2)調(diào)用成員對(duì)象析構(gòu)函數(shù),對(duì)派生類新增的成員對(duì)象進(jìn)行清理。(3)調(diào)用基類析構(gòu)函數(shù),對(duì)基類進(jìn)行清理。派生類析構(gòu)函數(shù)的定義與基類無(wú)關(guān),與沒(méi)有繼承關(guān)系的類中的析構(gòu)函數(shù)的定義完全相同。它只負(fù)責(zé)對(duì)新增普通成員的清理工作,系統(tǒng)會(huì)自己調(diào)用基類及成員對(duì)象的析構(gòu)函數(shù)進(jìn)行相應(yīng)的清理工作。

   【考點(diǎn)四】 多繼承與虛基類
  1、多繼承中的二義性問(wèn)題在派生類中對(duì)基類成員的訪問(wèn)應(yīng)該是唯一的。但是,在多繼承情況下,可能造成對(duì)基類中某個(gè)成員的訪問(wèn)出現(xiàn)了不唯一的情況,這時(shí)就稱對(duì)基類成員的訪問(wèn)產(chǎn)生了二義性。要解決這一問(wèn)題,有兩種方法:(1)通過(guò)作用域運(yùn)算符(::)明確指出訪問(wèn)的是基類Basel的fun()函數(shù),還是基類Base2的fun()函數(shù)。
     使用作用域運(yùn)算符進(jìn)行限定的一般格式是:<對(duì)象名>.<基類名>::<成員名>
//數(shù)據(jù)成員<對(duì)象名>.<基類名>::<成員名>(參數(shù)表>) 
//成員函數(shù)(2)在類中定義同名成員對(duì)于在不同的作用域中聲明的標(biāo)識(shí)符的可見(jiàn)性原則是:如果存在兩個(gè)或多個(gè)具有包含關(guān)系的作用域,外層聲明的標(biāo)識(shí)符如果在內(nèi)層沒(méi)有聲明同名標(biāo)識(shí)符,那么它在內(nèi)層可見(jiàn);如果內(nèi)層聲明了同名標(biāo)識(shí)符,則外層標(biāo)識(shí)符在內(nèi)層不可見(jiàn),這時(shí)稱內(nèi)層變量覆蓋了外層同名變量。在類的繼承層次結(jié)構(gòu)中,基類的成員和派生類新增的成員都具有類作用域,二者的作用范圍不同,是相互包含的兩個(gè)層,派生類在內(nèi)層。這時(shí),如果派生類定義了一個(gè)和某個(gè)基類成員同名的新成員(如果是成員函數(shù),則參數(shù)表也要相同,參數(shù)不同的情況屬于重載),派生的新成員就覆蓋了外層同名成員,直接使用成員名只能訪問(wèn)到派生類的成員。

  2、虛基類的定義當(dāng)一個(gè)派生類從多個(gè)基類派生,而這些基類又有一個(gè)共同的基類,當(dāng)對(duì)該基類中說(shuō)明的成員進(jìn)行訪問(wèn)時(shí),可能出現(xiàn)二義性。虛基類就是為了解決這種二義性問(wèn)題提出來(lái)的。在產(chǎn)生二義性問(wèn)題的第二種情況中,產(chǎn)生二義性的最主要的原因是基類Base在派生類Derived2中產(chǎn)生了兩個(gè)基類子對(duì)象,從而導(dǎo)致了對(duì)基類Base的成員data訪問(wèn)的不唯一性。要解決這個(gè)問(wèn)題,只需使這個(gè)公共基類Base在派生類中只產(chǎn)生一個(gè)子對(duì)象即可。虛基類就可以完成這個(gè)任務(wù)。虛基類的說(shuō)明格式如下:class<類名>:virtual<繼承方式><基類名> 其中,關(guān)鍵字virtual與繼承方式的位置無(wú)關(guān),但必須位于虛基類名之前,且virtual只對(duì)緊隨其后的基類名起作用。

  3、虛基類的構(gòu)造函數(shù)使用虛基類解決二義性問(wèn)題的關(guān)鍵是在派生類中只產(chǎn)生一個(gè)虛基類子對(duì)象。為初始化基類子對(duì)象,派生類的構(gòu)造函數(shù)要調(diào)用基類的構(gòu)造函數(shù)。對(duì)于虛基類,由于派生類的對(duì)象中只有一個(gè)虛基類子對(duì)象,所以,在建立派生類的一個(gè)對(duì)象時(shí),為保證虛基類子對(duì)象只被初始化一次,這個(gè)虛基類構(gòu)造函數(shù)必須只被調(diào)用一次。雖然繼承結(jié)構(gòu)的層次可能很深,但要建立的對(duì)象所屬的類只是這個(gè)繼承結(jié)構(gòu)中間的某個(gè)類,因此將在建立對(duì)象時(shí)所指定的類稱為最派生類。虛基類子對(duì)象由最派生類的構(gòu)造函數(shù)通過(guò)調(diào)用虛基類的構(gòu)造函數(shù)進(jìn)行初始化。所以,最派生類的構(gòu)造函數(shù)的成員初始化列表中必須列出對(duì)虛基類構(gòu)造函數(shù)的調(diào)用;如果未列出,則表示使用該虛基類的缺省構(gòu)造函數(shù)。由于最派生類總是相對(duì)的,因此,從虛基類直接或間接派生的派生類中的構(gòu)造函數(shù)的成員初始化列表中都要列出對(duì)虛基類構(gòu)造函數(shù)的調(diào)用。但只有用于建立對(duì)象的最派生類的構(gòu)造函數(shù)才調(diào)用虛基類的構(gòu)造函數(shù),此時(shí)最派生類的所有基類中列出的對(duì)虛基類的構(gòu)造函數(shù)的調(diào)用在執(zhí)行過(guò)程中都被忽略,從而保證對(duì)虛基類子對(duì)象只初始化一次。當(dāng)在一個(gè)成員初始化列表中同時(shí)出現(xiàn)對(duì)虛基類和非虛基類構(gòu)造函數(shù)的調(diào)用時(shí),虛基類的構(gòu)造函數(shù)先于非虛基類的構(gòu)造函數(shù)執(zhí)行。 

  【考點(diǎn)五】 子類型關(guān)系公有繼承時(shí),派生類的對(duì)象可以作為基類的對(duì)象處理,派生類是基類的子類型。子類型關(guān)系使得在需要基類對(duì)象的任何地方都可以使用公有派生類的對(duì)象來(lái)替代,從而可以使用相同的函數(shù)統(tǒng)一處理基類對(duì)象和公有派生類對(duì)象(形參為基類對(duì)象時(shí),實(shí)參可以是派生類對(duì)象),而不必為每一個(gè)類設(shè)計(jì)單獨(dú)的處理程序,大大提高了程序的效率。它是實(shí)現(xiàn)多態(tài)性的重要基礎(chǔ)之一。子類型關(guān)系的定義如下:有一個(gè)特定的類型S,當(dāng)且僅當(dāng)它提供了類型T的行為時(shí),稱類型S是類型T的子類型。公有派生類的對(duì)象可以賦值給基類的對(duì)象。實(shí)際上不僅如此,具有子類型關(guān)系的基類和派生類的對(duì)象之間滿足如下賦值兼容規(guī)則:(1)公有派生類的對(duì)象可以賦值給基類的對(duì)象,即用公有派生類對(duì)象中從基類繼承來(lái)的成員,逐個(gè)賦值給基類對(duì)象的成員。(2)公有派生類的對(duì)象可以初始化基類的引用。(3)公有派生類的對(duì)象的地址可以賦值給指向基類的指針。 

希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇

更多信息請(qǐng)?jiān)L問(wèn):考試吧計(jì)算機(jī)等級(jí)考試欄目

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。