返回類(lèi)型函數(shù)名(形參表){函數(shù)體;}函數(shù)模板:可以用來(lái)創(chuàng)建一個(gè)通用功能的函">
群體類(lèi)和群體數(shù)據(jù)的組織

群體類(lèi)和群體數(shù)據(jù)的組織

ID:21750329

大?。?12.00 KB

頁(yè)數(shù):45頁(yè)

時(shí)間:2018-10-20

群體類(lèi)和群體數(shù)據(jù)的組織_第1頁(yè)
群體類(lèi)和群體數(shù)據(jù)的組織_第2頁(yè)
群體類(lèi)和群體數(shù)據(jù)的組織_第3頁(yè)
群體類(lèi)和群體數(shù)據(jù)的組織_第4頁(yè)
群體類(lèi)和群體數(shù)據(jù)的組織_第5頁(yè)
資源描述:

《群體類(lèi)和群體數(shù)據(jù)的組織》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第9章群體類(lèi)和群體數(shù)據(jù)的組織本章主要內(nèi)容模板群體類(lèi)群體數(shù)據(jù)的組織第一部分—模板函數(shù)模板類(lèi)模板函數(shù)模板template返回類(lèi)型函數(shù)名(形參表){函數(shù)體;}函數(shù)模板:可以用來(lái)創(chuàng)建一個(gè)通用功能的函數(shù),以支持多種不同形參,進(jìn)一步簡(jiǎn)化重載函數(shù)的函數(shù)體設(shè)計(jì)。函數(shù)模板的定義形式為:模板參數(shù)表意義:對(duì)于功能完全一樣,只是參數(shù)類(lèi)型不同函數(shù),能寫(xiě)一段通用代碼適用于多種不同的數(shù)據(jù)類(lèi)型,會(huì)使代碼的可重用性大大提高,從而提高軟件的開(kāi)發(fā)效率。函數(shù)模板//將add函數(shù)定義成了一個(gè)函數(shù)模板:templ

2、ateTadd(Tx,Ty){returnx+y;}例如:注意:template關(guān)鍵字表示聲明的是模板。<>中是模板的參數(shù)表,可以有一項(xiàng)或多項(xiàng),其中的類(lèi)型名稱(chēng)為參數(shù)化類(lèi)型,是一種抽象類(lèi)型或可變類(lèi)型。class是類(lèi)型關(guān)鍵字,也可以用typename作為關(guān)鍵字。函數(shù)返回值類(lèi)型可以是普通類(lèi)型,也可以是模板參數(shù)表中指定的類(lèi)型。模板參數(shù)表中的參數(shù)類(lèi)型可以是普通類(lèi)型。函數(shù)模板說(shuō)明:根據(jù)<>中給出的具體類(lèi)型,用類(lèi)似于函數(shù)調(diào)用實(shí)參與形參結(jié)合的方式,將模板參數(shù)表中的參數(shù)化類(lèi)型一一實(shí)例化成具體的類(lèi)型,函數(shù)中的參數(shù)化類(lèi)型也一

3、一實(shí)例化。如果模板參數(shù)表中有形式參數(shù),還需要用常量表達(dá)式去初始化。例如:使用add(8,9)將Tadd(Tx,Ty)實(shí)例化成:doubleadd(double,double)使用sum將Tsum()實(shí)例化成:intsum(),size獲得初值100;函數(shù)模板定義后,就可以用它生成各種具體的函數(shù)(稱(chēng)為模板函數(shù))。在函數(shù)調(diào)用時(shí),用函數(shù)模板生成模板函數(shù)實(shí)際上就是將模板參數(shù)表中的參數(shù)化類(lèi)型根據(jù)實(shí)參實(shí)例化(具體化)成具體類(lèi)型。這個(gè)過(guò)程稱(chēng)為模板的實(shí)例化。函數(shù)模板實(shí)例化分為顯式實(shí)例化與隱式實(shí)例化。(

4、1)顯式實(shí)例化函數(shù)名<具體類(lèi)型名1,具體類(lèi)型名2,...,常量表達(dá)式>(實(shí)參表)函數(shù)模板例如:使用add(‘A’,‘B’)將Tadd(Tx,Ty)實(shí)例化成:charadd(char,char)(2)隱式實(shí)例化:隱式實(shí)例化的格式為函數(shù)調(diào)用式,實(shí)例化過(guò)程是在實(shí)參與形參結(jié)合時(shí),用實(shí)參的類(lèi)型實(shí)例化形參對(duì)應(yīng)的參數(shù)化類(lèi)型。注意:使用隱式實(shí)例化無(wú)法初始化模板參數(shù)表中的普通類(lèi)型的形參,如果模板參數(shù)表中使用普通類(lèi)型參數(shù),必須使用顯式初始化。函數(shù)模板//*******************************fun.cpp**函數(shù)模

5、板********************************/#includeusingnamespacestd;templateT1add(T1x,T2y){cout<<"("<

6、)<

7、型,普通類(lèi)型的參數(shù)用來(lái)為類(lèi)的成員提供初值。1.類(lèi)模板的定義template<模板參數(shù)表>class類(lèi)名{成員名;};類(lèi)模板是能根據(jù)不同參數(shù)建立不同類(lèi)型成員的類(lèi)。類(lèi)模板中的數(shù)據(jù)成員、成員函數(shù)的參數(shù)、成員函數(shù)的返回值可以取不同類(lèi)型,在實(shí)例化成對(duì)象時(shí),根據(jù)傳入的參數(shù)類(lèi)型,實(shí)例化成具體類(lèi)型的對(duì)象。類(lèi)模板也稱(chēng)模板類(lèi)。類(lèi)模板例如,下面定義了一個(gè)模板類(lèi)Student,為了增強(qiáng)類(lèi)的適用性,將學(xué)號(hào)設(shè)計(jì)成參數(shù)化類(lèi)型,它可以實(shí)例化成字符串、整型等;將成績(jī)?cè)O(shè)計(jì)成參數(shù)化類(lèi)型,它可以實(shí)例化成整型、浮點(diǎn)型、字符型(用來(lái)表示等級(jí)分)等;1.類(lèi)模板的定

8、義template//TNO,TScore為參數(shù)化類(lèi)型classStudent{private:TNOStudentID[num];//參數(shù)化類(lèi)型數(shù)組,存儲(chǔ)姓名TScorescore[num];//參數(shù)化類(lèi)型數(shù)組,存儲(chǔ)分?jǐn)?shù)public:TNOTopStudent(){ret

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。