通過函數參數的類型推導模板版本
模板函數如下:
template<class T>
T max(T x, T y)
{
return x>y ? x:y;
}
void testMax(void)
{
max(1,2);//因為兩個參數都是int型,所以編譯器會根據參數而推導出使用max<int>這個版本
max(1.2,3.4);//通過兩個參數都為double型,推導出使用max<double>這個版本
max('a',12);//會出現編譯錯誤,因為兩個參數,一個為char ,另一個為int ,所以編譯器無法根據類型推導出使用哪一個版本
//可以通過顯示的制定使用哪個版本,從而解決這個問題
max<int>('a',12);
}
posted on 2011-02-23 11:13 呆人 閱讀(458) 評論(0) 編輯 收藏 引用 所屬分類: STL學習系列