猿问

功能参数的默认值

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)

{


}

两者都起作用;这是标准方法,为什么?


红颜莎娜
浏览 381回答 3
3回答

德玛西亚99

如果将声明放在头文件中,将定义放在单独的.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);

犯罪嫌疑人X

第一种方法比第二种方法更可取。这是因为头文件将显示该参数是可选的,以及其默认值是什么。此外,无论相应的.cpp文件如何实现,这都将确保默认值相同。在第二种方式中,不能保证第二个参数的默认值。默认值可能会更改,具体取决于相应的.cpp文件的实现方式。
随时随地看视频慕课网APP
我要回答