首页 > 试题广场 >

下列对重载函数的描述中,____________是错误的。

[单选题]
下列对重载函数的描述中,____________是错误的。
  • 重载函数中不允许使用默认参数
  • 重载函数中编译时根据参数表进行选择
  • 构造函数重载将会给初始化带来多种方式
  • 不要使用重载函数来描述毫无相干的函数
推荐
答案A。
重载函数中使用默认参数是允许的,但在调用函数时要小心出现如下二义性。
void foo();
void foo(int a=0);
在上述函数声明下,如果我们在程序中这样调用foo()函数时,就会出现二义性,此时无法通过编译阶段。

编辑于 2015-12-05 11:13:14 回复(4)
函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数、类型、顺序)的函数,这组函数被称为重载函数。重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
发表于 2022-04-30 16:53:40 回复(0)
     A是错误的。
     一般情况下,在函数调用时形参从实参那里取得值,因此实参的个数应于形参相同。有时多次调用同样的实参,c++提供简单的处理办法,给实参一个默认值,这样实参就不必从实参取值了。如有一函数申明
     float area (float r=6.5);
     指定r的默认值为6.5,如果在调用此函数时,确认r的值为6.5,则可以不必给出实参的值,如: area( );  //相当于area(6.5);
     如果不想使形参取默认值,则通过实参另行给出。如:area(7.5)。
编辑于 2017-04-10 21:22:52 回复(1)
重载函数可以 有默认参数,但使用时  注意二义性
发表于 2019-08-29 23:08:09 回复(0)
重载函数可以有默认参数,使用时注意二义性
发表于 2022-01-28 14:13:24 回复(0)
根据排除法来选,后面三个肯定是对的
发表于 2015-12-04 15:19:19 回复(0)
重载函数可以出现默认参数,但是要注意会出现二义性
发表于 2016-06-25 00:39:24 回复(0)
重载函数中使用默认参数是允许的
发表于 2018-05-30 09:49:43 回复(0)
应该选B,根据实参选择。
A是不行的,不然 void foo()和void foo(int a=0)在调用foo()的时候编译器不知道选择哪个了~
发表于 2015-09-05 21:52:57 回复(0)