首页 > 试题广场 >

对于函数重载,下面哪一种说法是错误的?

[不定项选择题]
对于函数重载,下面说法错误的是()
  • 函数名不同,但形参的个数与类型相同
  • 函数名相同,但形参的个数与类型不同
  • 函数名相同,但形参的个数与类型也相同
  • 函数名相同,返回值不同,与形参无关
函数顺序不一致也可以重载................!!!!!!!
发表于 2020-02-20 23:15:00 回复(0)
选A、D函数重载是指在同一作用域内,可以有一组具有相同函数名不同参数列表的函数,这组函数被称为重载函数。不同的参数列表包括,参数的个数、类型或者顺序必须不同所以A,D的说法错误
对于B,如下代码编号1,2,3作对比,形参的个数和类型不同,构成重载方法,所以B的说法是正确的
对于C,如下代码编号编号3,4作对比,形参的个数与类型也相同,但形参类型顺序不同,也构成重载,所以C的说法也不算错误

#include <iostream>
using namespace std;
class printData
{
   public:
      void print(int i) {//编号1
        cout << "整数为: " << i << endl;
      }
 
      void print(double  f) {//编号2
        cout << "浮点数为: " << f << endl;
      }
      int print(int j,double n) {//编号3
        cout << "结果为: " << j+n << endl;
        return 0;
      }
      int print(double n,int j){//编号4
          cout << "result:" << n+j << endl;
        return 0;
      }
};
编辑于 2019-04-16 17:20:44 回复(1)

参数顺序不一样也可以重载

发表于 2019-06-24 20:20:33 回复(1)
选 A、D
函数重载(overload)是指多个函数使用相同的函数名。函数重载是多态性的体现,即使用同一个函数名实现多种函数调用。
调用重载函数时,C++编译器根据函数的实参类型来确定所调用的函数。因此,重载函数定义时,必须使彼此在参数个数 参数类型上有所不同。
在调用同名函数时,编译器怎么知道到底调用的是哪个函数呢?编译器是根据函数调用语句中实参的个数和类型来判断应该调用哪个函数的。因为重载函数的参数表不同,而调用函数的语句给出的实参必须和参数表中的形参个数和类型都匹配,因此编译器才能够判断出到底应该调用哪个函数。


仅返回值不同,不能定义为重载函数。因为C++允许 return 语句返回的表达式的类型与函数的类型不同(这时由系统做自动强制类型转换),在函数调用时编译器并不关心函数的返回值类型,而在函数返回时才涉及函数的返回值类型。


此外,还需注意两点:
(1)不允许重载main() 函数,因为main()函数是C++程序执行的唯一入口
(2)函数重载时,避免使用形参的默认值
比如:
int add( int x, int y, int z=10)   {return x+y+z}
int add(int x, int y)  {return x+y}
此时调用函数 add( 5, 10)时,系统不确定调用哪个add()方法。
编辑于 2021-11-16 11:02:52 回复(3)
C的表述太有迷惑性,出题考知识点就好了,不用搞得太咬文嚼字。 

发表于 2020-03-29 20:27:29 回复(0)
形参的顺序不同也是重载
发表于 2021-03-30 09:40:13 回复(0)
我服了,c可以说对也可以说错,不严谨
发表于 2020-10-16 23:11:55 回复(0)
C是因为函数的类型不同
发表于 2020-09-13 07:33:54 回复(0)
C选项可不可用const重载解释呢
发表于 2019-04-20 16:19:39 回复(1)
c选项用const不是也能重载吗,函数名参数个数类型都没变
发表于 2023-09-04 10:28:04 回复(0)
B也是错的,应该把与改成或,
函数名相同,但形参的个数或类型不同
发表于 2022-08-18 14:49:38 回复(0)
重载不关心返回类型
发表于 2022-07-14 16:20:31 回复(0)
就我觉得C答案,很模糊吗??
发表于 2021-10-18 08:38:46 回复(0)

C:还有个形参顺序可以不同,悲痛欲绝。

发表于 2021-03-16 14:38:27 回复(1)
c顺序可能不同
发表于 2021-03-10 09:37:12 回复(0)
<p>C选项形参顺序不同也行</p>
发表于 2020-07-07 09:01:12 回复(0)
那我就想问哈,c哪里对了
发表于 2020-01-17 11:12:31 回复(0)
BC不是互相矛盾吗?
函数名相同,形参的个数与类型也可以相同
函数名相同,但形参的个数与类型可以不同
这样才是对的吧😅我语文不太好。。。。

发表于 2019-12-07 17:07:14 回复(0)

函数顺序不一致也可以重载

发表于 2019-11-12 15:14:19 回复(0)

函数重载

发表于 2019-04-22 21:25:28 回复(0)