1、函數(shù)模板
創(chuàng)新互聯(lián)建站客戶(hù)idc服務(wù)中心,提供服務(wù)器托管、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過(guò)各地的服務(wù)中心,我們向成都用戶(hù)提供優(yōu)質(zhì)廉價(jià)的產(chǎn)品以及開(kāi)放、透明、穩(wěn)定、高性?xún)r(jià)比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時(shí)標(biāo)準(zhǔn)級(jí)技術(shù)保障。
模板就是為了代碼的復(fù)用,可以把數(shù)據(jù)類(lèi)型設(shè)計(jì)為參數(shù),由我們自定義類(lèi)型進(jìn)行傳送;
#include<iostream> using namespace std; template<typename Type> //模板的聲明,老的版本是class替換typename; Type Max(Type a, Type b){ return a > b ? a : b; } int main(void){ cout<<Max('a', 'b')<<endl; //求最大值 cout<<Max(2, 5.45)<<endl; //這會(huì)出錯(cuò),因?yàn)轭?lèi)型不一樣,沒(méi)法轉(zhuǎn)換。不會(huì)將double-->int, //不會(huì)隱式轉(zhuǎn)換的。 return 0; }
模板不支持隱式轉(zhuǎn)換,類(lèi)型必須明確給出(強(qiáng)制類(lèi)型轉(zhuǎn)換);
函數(shù)模板效率并不高,只是將函數(shù)模板-------->模板函數(shù);
上述出錯(cuò)的解決方案:cout<<Max(2, (int)5.45)<<endl; 或cout<<Max((double)2, 5.45);
或cout<<Max<int>(2, 5.45)<<endl; 指定int類(lèi)型的比較;
template<typename Type1, typename Type2> Type1 Max(Type1 a, Type2 b){ return a > b ? a : b; }
這樣就可以對(duì)應(yīng)傳過(guò)去的數(shù)據(jù)類(lèi)型;每個(gè)參數(shù)的類(lèi)型一一對(duì)應(yīng),在自己根據(jù)情況寫(xiě)出返回值類(lèi)型。
2、類(lèi)模板
C++中的類(lèi)一般都是模板類(lèi);
模板類(lèi)要注意的是:
(1)、在類(lèi)上面寫(xiě)上模板,友元函數(shù)類(lèi)的聲明,最上面也要寫(xiě)上模板;
(2)、在類(lèi)內(nèi)聲明,在類(lèi)外實(shí)現(xiàn)時(shí)要加上模板,并且還得在作用域限定符前面加上數(shù)據(jù)類(lèi)型<Type>;
模板的0初始化:
以上這些可以說(shuō)明語(yǔ)法是成立的; Type t = Type(); 這個(gè)就是模板的初始化,根據(jù)不同類(lèi)型初始化為0;
當(dāng)前題目:函數(shù)模板類(lèi)模板
網(wǎng)站URL:http://chinadenli.net/article2/jdpooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、網(wǎng)站制作、定制開(kāi)發(fā)、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)