模板是c++實現代碼重用的一種有效機制,模板通過把類型定義爲參數,提高了代碼的可重用性。
1.函數模板
- 在c++中,函數模版以
template<class ElementTpye>
或者template<typename ElementTpye>
的形式給出,ElementType爲形式參數,模板的每個形式參數都要在函數參數列表中至少出現一次。
int add(int a, int b)
{
return a + b;
}
double add2(double a, double b)
{
return a + b;
}
先看上面兩個函數,作用都是爲了實現兩個數相加,但是參數和返回的類型不同,除此之外,函數實現部分並沒用差別,因此我們可以採用函數模板來將兩個函數抽象成一個函數;
#include <iostream>
using namespace std;
template<class ElementTpye>
ElementTpye add(ElementTpye a, ElementTpye b)
{
return a + b;
}
int main()
{
int a = 1, b = 2;
double c = 2.0, d = 3.1;
cout << add(a, b) << endl; //輸出3
cout << add(c, d) << endl; //輸出5.1
return 0;
}
函數模板實例化時直接將函數add的形式參數替換爲變量a和b的int類型。