swap函式 template 函式模板

2021-10-11 23:23:42 字數 883 閱讀 1756

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...