关于函数模版的一道题-----c++有如下函数模版定义:template T func(T y,T x) { return x*x + y*y ; }在下列对func的调用中不正确的是( )A) func(3,5)B) func (3,5)C) func(3,5.5)D) func(3,5.5)我知道答案是c,但是为什

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/27 14:13:51
关于函数模版的一道题-----c++有如下函数模版定义:templateTfunc(Ty,Tx){returnx*x+y*y;}在下列对func的调用中不正确的是()A)func(3,5)B)func

关于函数模版的一道题-----c++有如下函数模版定义:template T func(T y,T x) { return x*x + y*y ; }在下列对func的调用中不正确的是( )A) func(3,5)B) func (3,5)C) func(3,5.5)D) func(3,5.5)我知道答案是c,但是为什
关于函数模版的一道题-----c++
有如下函数模版定义:
template
T func(T y,T x) { return x*x + y*y ; }
在下列对func的调用中不正确的是( )
A) func(3,5)
B) func (3,5)
C) func(3,5.5)
D) func(3,5.5)
我知道答案是c,但是为什么?
还有,函数模版实例后的什么时候可以省略?类模板实例后的呢?

关于函数模版的一道题-----c++有如下函数模版定义:template T func(T y,T x) { return x*x + y*y ; }在下列对func的调用中不正确的是( )A) func(3,5)B) func (3,5)C) func(3,5.5)D) func(3,5.5)我知道答案是c,但是为什
函数模版实例时会根据你的参数而自动转换,就好像A中3,5,T会自动变成int.而D,已经说明是int类型,所以5.5会变成5.但是C的话,3和5.5,此时就不知是int或者是double/float了,除非3改写成3.0