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 回答
![?](http://img1.sycdn.imooc.com/5458453d0001cd0102200220-100-100.jpg)
德玛西亚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);
![?](http://img1.sycdn.imooc.com/545864190001966102200220-100-100.jpg)
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
第一种方法比第二种方法更可取。
这是因为头文件将显示该参数是可选的,以及其默认值是什么。此外,无论相应的.cpp文件如何实现,这都将确保默认值相同。
在第二种方式中,不能保证第二个参数的默认值。默认值可能会更改,具体取决于相应的.cpp文件的实现方式。
- 3 回答
- 0 关注
- 380 浏览
添加回答
举报
0/150
提交
取消