首页 > 试题广场 >

重载函数在调用时选择的依据中,错误的是( )

[单选题]
重载函数在调用时选择的依据中,错误的是(        )
  • 参数个数
  • 参数类型
  • 函数名字
  • 函数类型
D肯定不对吧,重载函数不会根据函数返回值(函数类型)来区别,而C函数名称对于重载来说是一个必要条件,重载函数名都相同,这也是一个依据啊
编辑于 2017-05-04 17:47:06 回复(6)
不能把返回值作为函数重载的条件,原因是编译器在编译时不会去判断函数的返回类型,函数只有调用后,编译器才会去验证返回类型,所以返回值不能作为函数重载的依据。
发表于 2017-06-28 20:00:56 回复(0)
链接:https://www.nowcoder.com/questionTerminal/29705b52c5104334a3767ccc0818a349
来源:牛客网

为什么不将D选项函数返回类型作为重载函数在调用时选择的依据 ? 这是为了保证编译器在解析操作符或函数调用时要独立于上下文(不依赖于上下文)。比如:
float sqrt(float); double sqrt(double); void f(double da, float fla)
{  float fl=sqrt(da);/*调用sqrt(double)函数*/  double d=sqrt(da);/*调用sqrt(double)函数*/ fl=sqrt(fla);/*调用sqrt(float)函数*/ d=sqrt(fla);/*调用sqrt(float)函数*/ }

如果将返回类型考虑到函数重载中,编译器将无法再独立于上下文决定调用哪个函数。

发表于 2017-08-03 10:31:06 回复(0)
有问题 这个题目有问题
发表于 2017-05-25 19:37:13 回复(1)
int f(int a)与int f(int a) const,常函数也算是重载
发表于 2019-09-10 07:10:58 回复(0)

C++里函数类型不是返回类型+参数类型?重载函数名字都一样怎么区分啊

发表于 2019-08-22 20:56:31 回复(0)

编译之后而不是调用之前验证返回类型

发表于 2019-03-18 14:24:08 回复(0)
函数类型就是函数返回值
发表于 2019-03-15 22:55:04 回复(0)
 ̄  ̄)σ,函数类型---返回值。。。
发表于 2019-03-12 11:49:18 回复(2)
没看懂题目。。。
发表于 2018-03-26 15:35:30 回复(0)

重载函数:

在同一作用域内的几个函数名字相同,但是形参列表不同

发表于 2017-09-13 17:39:31 回复(0)
为什么不将D选项函数返回类型作为重载函数在调用时选择的依据 这是为了保证编译器在解析操作符或函数调用时要独立于上下文(不依赖于上下文)。比如:
float sqrt(float); double sqrt(double); void f(double da, float fla)
{  float fl=sqrt(da);/*调用sqrt(double)函数*/  double d=sqrt(da);/*调用sqrt(double)函数*/ fl=sqrt(fla);/*调用sqrt(float)函数*/ d=sqrt(fla);/*调用sqrt(float)函数*/ }

如果将返回类型考虑到函数重载中,编译器将无法再独立于上下文决定调用哪个函数。

编辑于 2017-07-04 11:02:10 回复(0)