有如下函数模板声明:template <typename T>T Max(T a,T b){return(a>=b)?a:b;}下列对函数模板Max

题目
有如下函数模板声明:template T Max(T a,T b){return(a>=b)?a:b;}下列对函数模板Max

有如下函数模板声明: 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
解析:使用模板,应避免二义性
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下函数模板声明: template TMax(T a,T b){return(a>=b)?a:b;} 下列对

有如下函数模板声明: template<typename T> TMax(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型数据”和从第二个参数获得信息“血型数据”两者矛盾,选项A)、C)正确;选项D)中,函数名后的double>是模板实参表,编译系统会将int型的形参“4”自动转化成double类型。

第2题:

有如下函数模板声明: template T Max(T a,T b){return(a>-b)?a:b;}下列对函数模板Ma

有如下函数模板声明: 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类型。

第3题:

有如下函数模板声明:templateT Max(T a,T b){return(a)b)?a:b;}下列对函数模板Max()

有如下函数模板声明: 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型数据”两者矛盾,

第4题:

有如下函数模板声明: template T Max(T a,T b){return(a>=b)? a:b;} 下列对函数模板

有如下函数模板声明:

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"获得的信息是"T对应于double",而从第二个参数"4"处获得的信息是"T对应于int",二者相互矛盾,在编译时会产生错误。对于D选项中紧跟在函数名后的double>就是模板实参表,通过它通知编译系统在调用过程中,将int型的参数"4"将换成double型。

第5题:

有如下函数模板声明:templateT Max(Ta,Tb){return(a>=b)?a: b;}下列对函数模板Max()

有如下函数模板声明:template<typename T>T Max(Ta,Tb){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

第6题:

有如下函数模板声明:templateT Max(T a, T B) {return (a>=B) ?a:b;}下列对函数模板

有如下函数模板声明: 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”获得的信息是“T对应于double”,而从第二个参数“4”处获得的信息是“T对应于int”,二者相互矛盾,在编译时会产生错误。对于D) 选项中紧跟在函数名后的double>就是模板实参表,通过它通知编译系统在调用过程中,int型的参数“4”将被自动换成double型。

第7题:

下面不属于同一函数模板的是()。A.template t1 max(t1 &a,t1 &b) {…}template<

下面不属于同一函数模板的是( )。

A.template<class t1> t1 max(t1 &a,t1 &b) {…}template<class t2> t2 max(t2 &a,t2 &b) {…}

B.template<class t1>t1 max(t1 a,t1 b){…}template<class t2>t2 max(t2 &a,t2 &b){…}

C.template<class t1> t1 max(t1 * a,t1 * b) {…} template<class t2> t2 max(t2 &a,t2 &b) {…}

D.template<class t1>t1 max(t1 a,t1 b){…}template<class t2>t2 max(t2 &a,t2 &b,t2 c){…}


正确答案:D
解析:函数模板的重载是靠模板参数的数量不同来区分的,因为函数模板是抽象的,有待于进一步实例化,所以靠参数类型无法区别调用哪个函数模板。

第8题:

有如下函数模板声明:templateT Max(T a,T b){return(a>=b)?a:b;}下列对函数模板Max(

有如下函数模板声明: 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
解析: 引用模板函数和引用一般的函数在语法形式上没有任何区别。说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参。

第9题:

有如下函数模板声明: template T Max(Ta,Tb){return(a>=b)?a:b;) 下列对函

有如下函数模板声明: template<typename T> T Max(Ta,Tb){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