黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

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

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

  7.4 子類型關系

  公有繼承時,派生類的對象可以作為基類的對象處理,派生類是基類的子類型。

  子類型關系使得在需要基類對象的任何地方都可以使用公有派生類的對象來替代,從而可以使用相同的函數統一處理基類對象和公有派生類對象(形參為基類對象時,實參可以是派生類對象),而不必為每一個類設計單獨的處理程序,大大提高了程序的效率。它是實現多態性的重要基礎之一。

  子類型關系的定義如下:

  有一個特定的類型S,當且僅當它提供了類型T的行為時,稱類型S是類型T的子類型。

  公有派生類的對象可以賦值給基類的對象。實際上不僅如此,具有子類型關系的基類和派生類的對象之間滿足如下賦值兼容規則:

  (1)公有派生類的對象可以賦值給基類的對象,即用公有派生類對象中從基類繼承來的成員,逐個賦值給基類對象的成員。

  (2)公有派生類的對象可以初始化基類的引用。

  (3)公有派生類的對象的地址可以賦值給指向基類的指針。

  7.5 虛函數與多態性

  1多態性的概念

  一個面向對象的系統常常要求一組具有相同基本語義的方法能在同一接口下為不同的對象服務,這就是所謂多態性(polymorphism)。

  在C+ +語言中,多態性可分為兩類:編譯時的多態性和運行時的多態性。

  編譯時的多態性是通過函數重載和模板體現的。利用函數重載機制,在調用同名的函數時,編譯系統可根據實參的具體情況確定所調用的是同名函數中的哪一個。利用函數模板,編譯系統可根據模板實參以及模板函數實參的具體情況確定所要調用的是哪個函數,并生成相應的函數實例;利用類模板,編譯系統可根據模板實參的具體情況確定所要定義的是哪個類的對象,并生成相應的類實例。由于有關操作所針對的具體目標(函數或類)的確定都是在編譯時完成的,與運行時的動態環境無關,“編譯時的多態性”因此而得名,其實現機制則和為靜態綁定(static binding,也譯作靜態聯編)。函數重載是“函數”一章中已經學習過的內容,但其中沒有包含函數重載的一種特殊情況:運算符重載。

  2虛函數

  在成員函數聲明的前面加上virtual修飾,即把該函數聲明為虛函數。虛函數可以是另一個類的友元函數,但不得是靜態成員函數。

  在派生類中可以重新定義從基類繼承下來的虛函數,從而提供該函數的適用于派生類的專門版本。也可能并不需要重新定義,在這種情況下,繼承下來的虛函數仍然保持其在基類中的定義,即派生類和基類使用同一函數版本。除少數特殊情況外,在派生類中重定義虛函數時,函數名、形參表和返回值類型必須保持不變。

  虛函數在派生類被重定義后,重定義的函數仍然是一個虛函數,可以在其派生類中再次被重定義。注意,對于虛函數的重定義函數,無論是否用virtual修飾都是虛函數。當然,最好不要省略virtual修飾,以免削弱程序的可讀性。

  對虛函數的調用有兩種方式:非多態調用和多態調用。非多態調用是指不借助于指針或引用的直接調用。非多態調用總是通過成員訪問運算符 .進行的。與通常的成員函數調用類似,非多態調用是建立在靜態綁定機制的基礎之上的,不具備多態性特征。多態調用是指借助于指向基類的指針或引用的調用。在C+ +中,一個基類指針(或引用)可以用于指向它的派生類對象,而且通過這樣的指針(或引用)調用虛函數時,被調用的是該指針(或引用)實際所指向的對象類的那個重定義版本。

  基類中的實函數也可以在派生類中重定義,但重定義的函數仍然是實函數。在實函數的情況下,通過基類指針(或引用)所調用的只能是基類的那個函數版本,無法調用到派生類中的重定義函數。也就是說,盡管調用的語法形式可能是相同的,但對實函數的任何形式的調用都是非多態的。注意,無論是虛函數還是實函數,在派生類中被重定義后,原來的函數版本即被隱藏,在通過成員訪問運算符 .直接調用該函數時,所調用的是重定義版本。但原來的版本依然存在,仍然可以通過在函數名前加域修飾(即:<類名>::)來調用它們。

  3虛析構函數

  析構函數也可以通過virtual修飾而聲明為虛函數。虛析構函數與一般虛函數的不同之處在于:

  (1)重定義函數就是派生類的析構函數,不要求同名。

  (2)一個虛析構函數的版本被調用執行后,接著就要調用執行基類版本,依次類推,直到調用執行了派生序列的最開始的那個虛析構函數版本為止。

  通常,只要派生類中包含有虛函數的重定義(從而有可能被多態調用),而且對析函數進行了專門的聲明(而不是不做任何聲明,從而采用默認的析構函數),其基類的析構函數就應當聲明為虛函數,否則就可能出問題。

  4純虛函數與抽象類

  在某些情況下,基類無法確定(或無法完全確定)一個虛函數的具體操作方式或內容,只能靠派生類來提供各個具體的實現版本。基類中的這種必須靠派生類提供重定義版本的虛函數稱為純虛函數。為了將一個虛函數聲明為純虛函數,需要在虛函數原形的語句結束符 ;之前加上=0。

  擁有純虛函數的類稱為抽象類,抽象類不能用來定義對象。如果一抽象類的派生類沒有重定義來自基類的某個純虛函數,則該函數在派生類中仍然是純虛函數,這就使得該派生類也成為抽象類。也就是說,一個派生類可以把重定義純虛函數的任務進一步轉交給它自己的派生類。

  可以在將一個函數聲明為純虛函數的同時,為該函數提供實現版本。換句話說,一個函數是否為純虛函數,取決于其原形的尾部是否為“=0”,與實現版本的有無沒有什么關系。擁有實現版本的純虛函數仍然有賴于派生類提供重定義版本。純虛函數的實現版本通常是不完善的版本,但包含了一些共有操作,供各個派生類在重定義函數中調用。派生類在重定義一個純虛函數時,可以繼續將之聲明為純虛函數。另外,純虛函數不得聲明為內聯函數。

 

 

 

上一頁  1 2 3 4 5  下一頁

編輯推薦:

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

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

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

文章責編:wuchong  
看了本文的網友還看了
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 先锋悠悠xfplay色资源网站 | 亚洲高清专区 | 日韩一区二区不卡中文字幕 | 国产激情视频在线播放 | 亚洲网站在线观看 | 国产精品久久婷婷六月丁香 | 日韩色图在线观看 | 国产午夜久久精品 | 亚洲三级黄色片 | 亚洲成av人片天堂网 | 精品日韩在线视频 | 久久精品成人欧美大片免费 | 免费无遮挡十八女禁污污网站 | 午夜视频免费在线 | 男女乱淫真视频免费一级毛片 | 亚洲1区2区3区4区 | 国产 日韩 欧美 亚洲 | 成人免费片 | 日本久久香蕉一本一道 | 18jzjzz国产 | 国产精品午夜剧场 | 一级片在线视频 | 午夜手机看片 | 日韩欧美精品 | 理论片午夜 | 寡妇一级a毛片免费播放 | 99精品视频在线观看 | 一个人看的高清www视频免费 | 三级黄色高清视频 | 中文字幕日韩亚洲 | 亚洲欧洲国产视频 | 国产成人宗合 | 亚洲综合影院 | 天天曰天天爽 | 91欧美在线视频 | 一区二区视频在线 | 欧美成人精品第一区二区三区 | a级片视频在线观看 | 婷婷亚洲综合五月天小说 | 亚洲国产精品成人综合久久久 | 综合国产在线 |