程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt

程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt

ID:50065569

大?。?17.00 KB

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

時(shí)間:2020-03-08

程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt_第5頁(yè)
資源描述:

《程序設(shè)計(jì)基礎(chǔ)——C++ 教學(xué)課件 作者 劉玉英 第10講 模板.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、10.1函數(shù)模板10.2類模板第10講模板模板是C++支持參數(shù)化多態(tài)的工具,使用模板可以使用戶為類或者函數(shù)聲明一種一般模式,使得類中的某些數(shù)據(jù)成員或者成員函數(shù)的參數(shù)、返回值取得任意類型。由于C++語(yǔ)言的程序結(jié)構(gòu)主要由函數(shù)和類構(gòu)成的,因此,模板也具有兩種形式:函數(shù)模板類模板模板是一種將數(shù)據(jù)類型參數(shù)化的工具,是C++語(yǔ)言的一個(gè)重要特征。10.1函數(shù)模板10.1.1為什么引進(jìn)函數(shù)模板?引進(jìn)函數(shù)模板可以解決函數(shù)重載問(wèn)題,減少代碼的書寫。案例1利用重載函數(shù)求絕對(duì)值:#include#includeintf(inti){ret

2、urni>0?i:-i;}//函數(shù)重載longintf(longinti){returni>0?i:-i;}//函數(shù)重載doublef(floati){returni>0?i:-i;}//函數(shù)重載voidmain(){inta;longintb;floatc;//聲明變量cin>>a>>b>>c;cout<<"整型:"<#includeclassABS//求絕對(duì)值{public:intf(inti){returnabs

3、(i);}//函數(shù)重載longintf(longinti){returnlabs(i);}//函數(shù)重載doublef(floati){returnfabs(i);}//函數(shù)重載};voidmain(){ABSn;//聲明對(duì)象inta;longintb;floatc;//聲明變量cin>>a>>b>>c;cout<<"整型:"<Tabs(Tvalue){returnvalue>0?value:-value;}方

4、法三利用函數(shù)模板,求絕對(duì)值的函數(shù)只要聲明一個(gè)函數(shù)模板:voidmain(){inta;longintb;floatc;//聲明變量cin>>a>>b>>c;cout<<"整型:"<

5、支持不同的函數(shù)參數(shù)和返回值,達(dá)到減少代碼書寫量的目的。函數(shù)模板的定義形式如下:template返回值類型函數(shù)名(參數(shù)表){函數(shù)體}類型形參T代表在函數(shù)模板中要使用的通用類型,在該函數(shù)的調(diào)用過(guò)程中,T被實(shí)參的類型具體化。10.1.2函數(shù)模板的定義與使用關(guān)鍵詞class或typename與T一起說(shuō)明用戶定義的數(shù)據(jù)類型函數(shù)模板實(shí)際上是定義了一類函數(shù),對(duì)有些參數(shù)或數(shù)據(jù)成員的數(shù)據(jù)類型并不具體指定,而是作為模板的參數(shù)。等到使用模板時(shí)再根據(jù)實(shí)參的數(shù)據(jù)類型來(lái)確定模板參數(shù)的類型,得到模板的實(shí)例,稱為模板的實(shí)例化。例如:template

6、Tabs(Tvalue){returnvalue>0?value:-value;}若使用模板時(shí):abs(5);//將模板參數(shù)的類型實(shí)例化為整型abs(-3.8);//將模板參數(shù)的類型實(shí)例化為實(shí)型函數(shù)模板實(shí)例化后生成的函數(shù)稱為模板函數(shù)。在程序中可用不同類型的實(shí)參來(lái)調(diào)用同一個(gè)函數(shù),減少了代碼的書寫。#include"iostream.h"template//函數(shù)模板(兩數(shù)交換)voidswap(T&x,T&y){Ttemp=x;x=y;y=temp;}template//函數(shù)模板(冒泡排序)voidsort(T*v,intn)

7、//參數(shù)中有參數(shù)化類型的參數(shù),也有普通類型的參數(shù){for(inti=1;iv[j+1])swap(v[j],v[j+1]);//調(diào)用函數(shù)模板實(shí)例化后生成的模板函數(shù)}案例2編寫冒泡排序的函數(shù)模板并實(shí)現(xiàn)排序。template//print函數(shù)模板(顯示輸出)voidprint(T*v,intn){for(inti=0;i

8、33,55,77};cout<<"排序前:";print(a,10);sort(

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(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)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。