关于函数模版的一道题-----c++
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/17 22:43:34
关于函数模版的一道题-----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,但是为什么?
还有,函数模版实例后的什么时候可以省略?类模板实例后的呢?
有如下函数模版定义:
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++](/uploads/image/z/7239428-44-8.jpg?t=%E5%85%B3%E4%BA%8E%E5%87%BD%E6%95%B0%E6%A8%A1%E7%89%88%E7%9A%84%E4%B8%80%E9%81%93%E9%A2%98-----c%2B%2B)
函数模版实例时会根据你的参数而自动转换,就好像A中3,5,T会自动变成int.而D,已经说明是int类型,所以5.5会变成5.但是C的话,3和5.5,此时就不知是int或者是double/float了,除非3改写成3.0