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

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

  第9章 模板
  【考點(diǎn)一】 函數(shù)模板

  1.函數(shù)模板的概念、定義與應(yīng)用函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼形式相同,只是所針對的數(shù)據(jù)類型不同。對于函數(shù)模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的函數(shù)。聲明一個(gè)函數(shù)模板的格式是:template模板形參表聲明函數(shù)聲明
  其中的模板形參表聲明是由一個(gè)或多個(gè)模板形參組成(如果是多個(gè),需要用逗號隔開)。每個(gè)模板形參具有下面幾種形式:(1)typename參數(shù)名(2)class參數(shù)名(3)類型修飾參數(shù)名
  這里的參數(shù)名可以是任意的標(biāo)識符。在這三種形式中,前兩種是等價(jià)的:在聲明模板參數(shù)時(shí),關(guān)鍵字typename與class可以互換。用typename或class聲明的參數(shù)稱為虛擬類型參數(shù);而用類型修飾聲明的參數(shù)則挑為常規(guī)參數(shù),在形式上與普通的函數(shù)參數(shù)聲明相同。格式中的函數(shù)聲明與一般函數(shù)的聲明類似,只是某些類型修飾符被虛擬類型參數(shù)所替代。

  2.模板實(shí)參的省略在調(diào)用一個(gè)模板函數(shù)時(shí),編譯系統(tǒng)需要足夠的信息來判別每個(gè)虛擬類型參數(shù)所對應(yīng)的實(shí)際類型,可以從兩個(gè)不同的渠道獲得這樣的信息:從模板實(shí)參表(用和括起來的參數(shù)表)或從模板函數(shù)實(shí)參表(用(和)括起來的參數(shù)表),模板實(shí)參的信息優(yōu)先于函數(shù)實(shí)參的信息。如果從后者獲得的信息已經(jīng)能夠判定其中部分或全部虛擬類型參數(shù)所對應(yīng)的實(shí)際參數(shù),而且它們又正好是參數(shù)表中最后的若干參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。如果模板實(shí)參表中的實(shí)參都被省略了,則連空表也可以不要。因此,若x和y都是unsigned型,則addTounsigned(x,y,9)、addT (x、y、9)和addTo(x,y,9)三者是等價(jià)的。反之,對于某個(gè)模板實(shí)參,如果從模板函數(shù)的實(shí)參表中無法獲得同樣的信息,就不能省略;或者雖然能夠獲得同樣的信息,但在它后面還有其他不能省略的實(shí)參,則其自身還是不能省略。下面列舉幾種模板實(shí)參不能省略的情況。(1)從模板函數(shù)實(shí)參表獲得的信息矛盾。(2)需要獲得特定類型的返回值,而不管參數(shù)的類型如何。(3)虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中。(4)函數(shù)模板含有常規(guī)形參。

  3、函數(shù)模板的定制對不同的數(shù)據(jù)類型在處理形式上的統(tǒng)一性是建立模板的基礎(chǔ)。但是,這種統(tǒng)一性是相對的,個(gè)別數(shù)據(jù)類型有可能比較特殊,在處理形式上與大多數(shù)數(shù)據(jù)類型不一致。針對這樣的特殊情況,可以通過重載模板函數(shù)進(jìn)行定制。這樣把重載的模板稱為補(bǔ)充模板,相應(yīng)地,原模板則稱為主模板。

  【考點(diǎn)二】類模板
  1、類模板的概念、定義與應(yīng)用類模板就是一系列相關(guān)類的模型或樣板,這些類的成員組成相同,成員函數(shù)的源代碼形式相同,所不同的只是所針對的類型(成員的類型以及成員函數(shù)的參數(shù)和返回值的類型)。對于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。類模板中聲明的類稱為模板類。聲明一個(gè)類模板的格式是:template模板形參表聲明類聲明模板形參表聲明是由一個(gè)或多個(gè)模板形參組成;與一般的類聲明的不同之處在于,這里的類聲明要用模板形參表聲明中聲明的虛擬類型參數(shù)來修飾它的某些成員,使模板類獨(dú)立于任何具體的數(shù)據(jù)類型。在模板外對成員函數(shù)的聲明格式是:template模板形參表聲明返回類型類名模板形參表::函數(shù)名(函數(shù)形參表)函數(shù)體其中模板形參表就是由模板形參表聲明中聲明的參數(shù)名組成的序列。應(yīng)注意,類模板的成員函數(shù)都是模板函數(shù),因此在模板外聲明成員函數(shù)的格式與聲明普通模板函數(shù)十分相似。用類模板定義對象的格式是:類名模板實(shí)參表對象名;或類名模板實(shí)參表對象名(構(gòu)造函數(shù)實(shí)參表);在定義對象的過程中,編譯系統(tǒng)會自動地根據(jù)需要生成相應(yīng)的類定義,這種依據(jù)類模板生成類定義的過程稱為類模板的實(shí)例化。類模板實(shí)例所生成的每一個(gè)類定義就是相應(yīng)類模板的一個(gè)實(shí)例。在用類模板定義對象時(shí),由于沒有像函數(shù)實(shí)參表這樣的額外信息渠道,因此無法按函數(shù)模板的方式省略模板實(shí)參。但是,可以為類模板的參數(shù)設(shè)置默認(rèn)值。具體地說,在定義類模板時(shí),可以為模板形參表聲明的最后若干個(gè)參數(shù)設(shè)置默認(rèn)值;而這些有默認(rèn)值的參數(shù)中,最后的若干個(gè)對應(yīng)實(shí)參可以在定義對象時(shí)省略。

   2、類模板的派生與繼承一談到繼承總涉及到兩個(gè)類:基類和派生類,它們中任何一個(gè)都有可能是模板類,或模板類的實(shí)例。下面列出常見的幾種情況。(1)普通類繼承類模板的一個(gè)實(shí)例?梢酝ㄟ^繼承類模板的一個(gè)實(shí)例來聲明一個(gè)類。(2)模板類繼承普通類。在聲明一個(gè)類模板時(shí),應(yīng)盡可能將類模板中與虛擬類型參數(shù)無關(guān)的成員剝離出來,構(gòu)成一個(gè)普通類,作為類模板的基類。因此,類模板繼承普通類的情況是十分常見的。(3)模板類繼承模板類?梢酝ㄟ^繼承一個(gè)模板類來聲明一個(gè)類模板。(4)模板類繼承模板參數(shù)給出的基類。模板的派生甚至可以繼承一個(gè)未知的基類。也就是說,繼承哪個(gè)基類由模板參數(shù)決定。

  3、類模板的定制與函數(shù)模板類似,類模板有時(shí)也需要定制,以適應(yīng)某些特殊情況。類模板的定制也是通過定義補(bǔ)充模板實(shí)現(xiàn)的,稱為模板的特例化,每個(gè)補(bǔ)充模板就是主模板的一個(gè)特例。

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

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

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