有如下函数模板声明: template<typename T> T Max(T a,T b){return(a>-b)?a:b;} 下列对函数模板Max()的调用中错误的是( )。

admin2010-12-16  38

问题 有如下函数模板声明:         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 型数据”两者矛盾,错误;A、选项C)正确:选项D)中,函数名后的<double>是模板实参表,编译系统会将int 型的形参“4”自动转化成double类型。
转载请注明原文地址:https://jikaoti.com/ti/MMW0FFFM
0

最新回复(0)