模板函數(shù)如下:
template<class T>
T max(T x, T y)
{
return x>y ? x:y;
}
void testMax(void)
{
max(1,2);//因?yàn)閮蓚€(gè)參數(shù)都是int型,所以編譯器會根據(jù)參數(shù)而推導(dǎo)出使用max<int>這個(gè)版本
max(1.2,3.4);//通過兩個(gè)參數(shù)都為double型,推導(dǎo)出使用max<double>這個(gè)版本
max('a',12);//會出現(xiàn)編譯錯(cuò)誤,因?yàn)閮蓚€(gè)參數(shù),一個(gè)為char ,另一個(gè)為int ,所以編譯器無法根據(jù)類型推導(dǎo)出使用哪一個(gè)版本
//可以通過顯示的制定使用哪個(gè)版本,從而解決這個(gè)問題
max<int>('a',12);
}