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

2014年計算機二級C++考點歸納:繼承與派生

  7.3 多繼承與虛基類

  1多繼承中的二義性問題

  在派生類中對基類成員的訪問應該是唯一的。但是,在多繼承情況下,可能造成對基類中某個成員的訪問出現(xiàn)了不唯一的情況,這時就稱對基類成員的訪問產生了二義性。

  要解決這一問題,有兩種方法:

  (1)通過作用域運算符(::)明確指出訪問的是基類Basel的fun()函數(shù),還是基類Base2的fun()函數(shù)。

  使用作用域運算符進行限定的一般格式是:

  <對象名>.<基類名>::<成員名>

  //數(shù)據(jù)成員

  <對象名>.<基類名>::<成員名>(參數(shù)表>)

  //成員函數(shù)

  (2)在類中定義同名成員

  對于在不同的作用域中聲明的標識符的可見性原則是:如果存在兩個或多個具有包含關系的作用域,外層聲明的標識符如果在內層沒有聲明同名標識符,那么它在內層可見;如果內層聲明了同名標識符,則外層標識符在內層不可見,這時稱內層變量覆蓋了外層同名變量。

  在類的繼承層次結構中,基類的成員和派生類新增的成員都具有類作用域,二者的作用范圍不同,是相互包含的兩個層,派生類在內層。這時,如果派生類定義了一個和某個基類成員同名的新成員(如果是成員函數(shù),則參數(shù)表也要相同,參數(shù)不同的情況屬于重載),派生的新成員就覆蓋了外層同名成員,直接使用成員名只能訪問到派生類的成員。

  2虛基類的定義

  當一個派生類從多個基類派生,而這些基類又有一個共同的基類,當對該基類中說明的成員進行訪問時,可能出現(xiàn)二義性。虛基類就是為了解決這種二義性問題提出來的。

  在產生二義性問題的第二種情況中,產生二義性的最主要的原因是基類Base在派生類Derived2中產生了兩個基類子對象,從而導致了對基類Base的成員data訪問的不唯一性。要解決這個問題,只需使這個公共基類Base在派生類中只產生一個子對象即可。虛基類就可以完成這個任務。

  虛基類的說明格式如下:

  class<類名>:virtual<繼承方式><基類名>

  其中,關鍵字virtual與繼承方式的位置無關,但必須位于虛基類名之前,且virtual只對緊隨其后的基類名起作用。

  3虛基類的構造函數(shù)

  使用虛基類解決二義性問題的關鍵是在派生類中只產生一個虛基類子對象。為初始化基類子對象,派生類的構造函數(shù)要調用基類的構造函數(shù)。對于虛基類,由于派生類的對象中只有一個虛基類子對象,所以,在建立派生類的一個對象時,為保證虛基類子對象只被初始化一次,這個虛基類構造函數(shù)必須只被調用一次。雖然繼承結構的層次可能很深,但要建立的對象所屬的類只是這個繼承結構中間的某個類,因此將在建立對象時所指定的類稱為最派生類。虛基類子對象由最派生類的構造函數(shù)通過調用虛基類的構造函數(shù)進行初始化。所以,最派生類的構造函數(shù)的成員初始化列表中必須列出對虛基類構造函數(shù)的調用;如果未列出,則表示使用該虛基類的缺省構造函數(shù)。

  由于最派生類總是相對的,因此,從虛基類直接或間接派生的派生類中的構造函數(shù)的成員初始化列表中都要列出對虛基類構造函數(shù)的調用。但只有用于建立對象的最派生類的構造函數(shù)才調用虛基類的構造函數(shù),此時最派生類的所有基類中列出的對虛基類的構造函數(shù)的調用在執(zhí)行過程中都被忽略,從而保證對虛基類子對象只初始化一次。

  當在一個成員初始化列表中同時出現(xiàn)對虛基類和非虛基類構造函數(shù)的調用時,虛基類的構造函數(shù)先于非虛基類的構造函數(shù)執(zhí)行。

上一頁  1 2 3 4 5 下一頁

編輯推薦:

2014年上半年計算機等級考試報名時間預告

2014年計算機等級考試考試時間預測

2013年9月計算機等級考試成績查詢時間及方式預告

文章責編:wuchong  
看了本文的網友還看了
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。