真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【C++語法】templates-創(chuàng)新互聯(lián)

template 背景

為適應如下代碼,提高代碼重用性(靜態(tài)多態(tài))而出現(xiàn)

成都創(chuàng)新互聯(lián)主營織金網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應用開發(fā),織金h5小程序制作搭建,織金網(wǎng)站營銷推廣歡迎織金等地區(qū)企業(yè)咨詢
int Mymax(int x, int y){return x >y ? x : y;
}
double Mymax(double x, double y){return x >y ? x : y;
}

模板寫法如下:

template// or templateT Mymax(T x, T y){return x >y ? x : y;
}
函數(shù)模板與普通函數(shù)的調(diào)用順序
  1. 模板函數(shù)可像普通函數(shù)一樣重載
// 定義一個名為 Mymax 的普通函數(shù)
int Mymax(int x, int y){return x >y ? x : y;
}
  1. 調(diào)用機制:當函數(shù)模板與普通函數(shù)發(fā)生重載時,優(yōu)先匹配普通函數(shù),當函數(shù)模板產(chǎn)生一個比普通函數(shù)更好的相匹配的模板函數(shù),則調(diào)用該模板函數(shù)
Mymax(5, 10); // int Mymax(int, int) // 優(yōu)先匹配
Mymax(5, 10.5); // int Mymax(int, int)  // 優(yōu)先匹配(參數(shù)自動類型轉(zhuǎn)換)
Mymax(5.5, 10); // int Mymax(int, int)  // 優(yōu)先匹配(參數(shù)自動類型轉(zhuǎn)換)
Mymax(5.5, 10.5); // T Mymax(T, T) // 模板函數(shù)double Mymax(double,double)最優(yōu)
// 注: 以上4條調(diào)用在沒有函數(shù)模板的情況下依舊匹配成功,均調(diào)用int Mymax(int, int)函數(shù)
  1. 若想略過普通函數(shù)直接調(diào)用模板函數(shù),調(diào)用方式

函數(shù)名<[指定類型]>(實參列表); // []內(nèi)為可省內(nèi)容

Mymax<>(5, 10); // 模板函數(shù) int
Mymax<>(5, 10.5); //error
Mymax<>(5.5, 10); // error : no matching function for call to 'Mymax(double, int)'
Mymax<>(5.5, 10.5); // 模板函數(shù) double 
Mymax(5.5, 10.5); // 模板函數(shù) int ,輸出 10
擴展

普通函數(shù)支持類型自動轉(zhuǎn)換匹配,模板函數(shù)必須嚴格匹配

templateT Mymax(T x, S y){return x >y ?  x : y;
}
Mymax(25, 26.3); // T Mymax(T, S) // cout :  26
Mymax(25.5, 26.3); // T Mymax(T, S) // cout : 26
Mymax(25, 26); // int Mymax(int, int)
// 這兩個模板函數(shù)不可重載,只有函數(shù)類型不同,會產(chǎn)生ambiguous
templateS Mymax(T x, S y){return x >y ? x : y;
}
Mymax(25, 26.3); // S Mymax(T, S) // cout<< 26.3
Mymax(25.5, 26.3); // S Mymax(T, S) // cout<< 26.3

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站欄目:【C++語法】templates-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/phoed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部