为了账号安全,请及时绑定邮箱和手机立即绑定

功能参数的默认值

功能参数的默认值

C++
红颜莎娜 2019-11-25 12:49:46
1。int Add (int a, int b = 3);int Add (int a, int b){}2。int Add (int a, int b);int Add (int a, int b = 3){}两者都起作用;这是标准方法,为什么?
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

如果将声明放在头文件中,将定义放在单独的.cpp文件中,并将#include头放在其他.cpp文件中,则可以看到不同之处。


具体来说,假设:


int Add(int a, int b);

库文件

int Add(int a, int b = 3) {

   ...

}

测试文件

#include "lib.h"


int main() {

    Add(4);

}

的编译test.cpp将看不到默认参数声明,并且将失败并显示错误。


因此,通常在函数声明中指定默认参数定义:


int Add(int a, int b = 3);


查看完整回答
反对 回复 2019-11-25
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

第一种方法比第二种方法更可取。

这是因为头文件将显示该参数是可选的,以及其默认值是什么。此外,无论相应的.cpp文件如何实现,这都将确保默认值相同。

在第二种方式中,不能保证第二个参数的默认值。默认值可能会更改,具体取决于相应的.cpp文件的实现方式。


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 360 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信