问题
单项选择题
有如下函数模板声明:
template<typename T>
T Max(T a,T b)return(a)b)a:b;
下列对函数模板Max()的调用中错误的是( )。
A.Max(3.5,4.5)
B.Max(3.5,4)
C.Max(double)(3.5,4.5)
D.Max(double)(3.5,4)
答案
参考答案:B
解析: 本题考查的是函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本意选项B中,编译系统从第一个参数“3.5”获得信息“double型数据”和从第二个参数获得信息“int型数据”两者矛盾,