#include <iostream>using namespace std;//聲明函數模板template<typename T> T max(T a, T b, T c);int main( ){ //求三個整數的最大值 int i1, i2, i3, i_max; cin >> i1 >> i2 >> i3; i_max = max(i1,i2,i3); cout << "i_max=" << i_max << endl; //求三個浮點數的最大值 double d1, d2, d3, d_max; cin >> d1 >> d2 >> d3; d_max = max(d1,d2,d3); cout << "d_max=" << d_max << endl; //求三個長整型數的最大值 long g1, g2, g3, g_max; cin >> g1 >> g2 >> g3; g_max = max(g1,g2,g3); cout << "g_max=" << g_max << endl; return 0;}//定義函數模板template<typename T> //模板頭,這里不能有分號T max(T a, T b, T c){ //函數頭 T max_num = a; if(b > max_num) max_num = b; if(c > max_num) max_num = c; return max_num;}運行結果:12 34 100↙i_max=10073.234 90.2 878.23↙d_max=878.23344 900 1000↙g_max=1000函數模板也可以提前聲明,不過聲明時需要帶上模板頭,并且模板頭和函數定義(聲明)是一個不可分割的整體,它們可以換行,但中間不能有分號。
參考:http://c.biancheng.net/cpp/biancheng/view/136.html
注意: 這里可以聲明和實現都在cpp里面, 這是與模板類不一樣的地方。
新聞熱點
疑難解答