国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

函數模板

2019-11-14 10:07:49
字體:
來源:轉載
供稿:網友

函數模板,將同一種函數算法應用于各種數據類型。

聲明:

template <typename T>

void swap(T & a,T & b);

定義:

template <typename T>

void swap(T & a,T & b)

{

T temp;

temp = a;

a = b;

b = temp;

}

注意函數模板不能縮短可執行程序,最終的代碼不包含任何模板,只包含了為程序生成的實際函數。函數模板的好處在于,使得生成多個函數定義更簡單、更可靠。

重載和函數模板結合時,并不要求模板參數都必須是模板參數類型。

為特定類型提供具體化模板定義,稱為顯式具體化。當編譯器找到與函數調用匹配的具體化定義時,將使用該定義而不再尋找其模板。具體化優先于常規模板,而非模板函數優先于具體化和常規模板。

用顯式具體化,要求原型和定義用template <>打頭。

template <typename T>

void swap(T &,T &);

template <> void swap(job &,job &);

或者:

template <> void swap<job>(job &,job &);

以上均為隱式實例化,由編譯器根據參數類型推斷。而顯式實例化直接指定生成哪一種類型示例,由template打頭:

template void swap<int>(int &,int &);

顯式實例化作用為減少推斷隱式實例化的必要,提高編譯效率。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毕节市| 上蔡县| 罗定市| 信宜市| 饶阳县| 阜康市| 合江县| 雷州市| 报价| 巴东县| 平果县| 山丹县| 上思县| 原阳县| 铜山县| 乌兰县| 监利县| 上思县| 田阳县| 廉江市| 广平县| 桦甸市| 西畴县| 密云县| 乌拉特中旗| 富顺县| 定陶县| 萨迦县| 三台县| 东方市| 休宁县| 镇远县| 浦东新区| 韶山市| 霞浦县| 广德县| 泾源县| 长岛县| 来宾市| 蓬莱市| 石阡县|