有如下函数模板定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func的调用中,错误的是( )。

admin2019-06-12  36

问题 有如下函数模板定义:
   template<class T>
    T func(T x,T y){return x*x+y*y;}
    在下列对func的调用中,错误的是(    )。

选项 A、func(3,5);
B、func(3.0,5.5);
C、func(3,5.5);
D、func<int>(3,5.5);

答案C

解析 此题考查的是函数模板的使用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中的对应形参。本题C选项中,编译系统从第一个参数“3”获得信息“int”和从第二个参数获得信息“double”两者矛盾,错误;A、B选项正确:D选项中,函数名后的是模板实参表,编译系统会将double型的形参“5.5”自动转化成int类型。
转载请注明原文地址:https://kaotiyun.com/show/EL8p777K
0

最新回复(0)