template是c++裡面的關鍵字
還是接著上次的swap函式入手:
一叉樹:從c語言到c++zhuanlan.zhihu.com
現在想交換的是兩個int變數和兩個double變數:
using namespace std;
int main()
void swap2(double &a,double &b)
這兩個函式除了引數型別不一樣,其他都是乙個模子刻出來的。
template就可以把這兩個函式抽象出乙個模板,要用哪個編譯器就生成哪個
template返回值型別 模板名(形參表);
template void swap(t &a,t &b)
注意:swap的s大寫,因為可能有庫函式重名引起錯誤;完整**+執行截圖:
template函式模板
模板 templates 使得我們可以生成通用的函式,這些函式能夠接受任意資料型別的引數,可返回任意型別的值,而不需要對所有可能的資料型別進行函式過載。這在一定程度上實現了巨集 macro 的作用。它們的原型定義可以是下面兩種中的任何乙個 template function declaration ...
template函式模板
模板 templates 使得我們可以生成通用的函式,這些函式能夠接受任意資料型別的引數,可返回任意型別的值,而不需要對所有可能的資料型別進行函式過載。這在一定程度上實現了巨集 macro 的作用。它們的原型定義可以是下面兩種中的任何乙個 template function declaration ...
template之函式模版
函式模板 通用函式適用於不同資料型別 1 所有函式模板的定義都是用關鍵字template開始的,該關鍵字之後是使用尖括號括起來的模板參數列。下面以絕對值函式模板為例 在編譯過程中,有實參的型別來決定模板引數的型別。在函式模板例項化的過程中,不能完成型別轉換。比如 template void fun1...