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

admin2013-05-30  37

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

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

答案4

解析 对于选项C,编译系统从3获得的信息是“T对应于int”,从5.5处获得的信息是“T对应于double”,二者相互矛盾,在编译时会产生错误。对于选项D中紧跟在函数名后的<int>就是模板实参表,通过它通知编译系统在调用过程中,double型的参数5.5将被自动换成血型。
转载请注明原文地址:https://jikaoti.com/ti/4mE0FFFM
0

最新回复(0)