国产探花免费观看_亚洲丰满少妇自慰呻吟_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 &);

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 军事| 花莲县| 阳江市| 古蔺县| 太白县| 九龙县| 定日县| 弥渡县| 德州市| 仙游县| 阆中市| 永嘉县| 司法| 榆中县| 普宁市| 昌图县| 民县| 岳阳市| 布尔津县| 敖汉旗| 怀集县| 牟定县| 和硕县| 金秀| 阿克| 新丰县| 登封市| 西华县| 桐乡市| 昭通市| 武乡县| 精河县| 邹城市| 太和县| 涿鹿县| 宝丰县| 正蓝旗| 霸州市| 潼南县| 大悟县| 枞阳县|