c++ - 函数参数的默认值

标签 c++ syntax optional-parameters

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)
{

}

两者都有效;这是标准方式,为什么

最佳答案

如果您将声明放在头文件中,将定义放在单独的 .cpp 文件中,并且 #include 来自不同 .cpp 的头文件 文件,您将能够看到差异。

具体来说,假设:

lib.h

int Add(int a, int b);

lib.cpp

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

test.cpp

#include "lib.h"

int main() {
    Add(4);
}

test.cpp的编译不会看到默认的参数声明,会报错失败。

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

lib.h

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

关于c++ - 函数参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842928/

相关文章:

c++ - 使用少于需要的参数调用函数

vb.net - Visual Studio 2012/2013 中新的 VB.NET 函数签名行为

c++ - 使用 SIMD AVX 计算两个排序数组的对称差异的大小

asp.net-mvc - 有没有办法将可选参数发送到 Action ?

c++ - 从基类到不同派生类的多重继承转换

java - FileInputStream 在另一个类中?

语法

javascript - JavaScript 解释器如何解释代码?

c++ - 用 C++ 为格式化文本编写解析器

c++ - 使用模板进行隐式类型转换