模板函数如下:
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);
}