template
對於c++來說,一個函數的形參和要返回的值得類型在函數定義時就已經確定。
比如:
int Square(int x)
{
return x*x;
}
這樣的話,這個函數就只能計算int型數字得平方。如果我們要計算double呢。
我們需要定義一個double類型的函數
double Square(double x)
{
return x*x;
}
很麻煩,對嗎。如果你要計算long,float型的,你還要重新定義函數。
大佬們當然早就想到了這個問題,所以引入一個template。
現在,我們這樣寫這段代碼:
template<typename T> //T只是一個字母,你取ABCD都可以。用T相當於一種命名規範
T Square(T x)
{
return x*x;
}
當我們調用這個函數時,我們這樣調用:
Square<double>(5.5); // 計算double類型的數據
Square<int>(5); // 計算int類型的數據
這樣,就簡單多了。
實際上,這樣寫也沒錯:和上面代碼功能完全一樣
Square(5.5); // 計算double類型的數據
Square(5); // 計算int類型的數據