【发布时间】:2015-08-29 07:52:09
【问题描述】:
函数中的默认值究竟是如何工作的?我的问题与这个例子有关:
int func(int number, std::string name = "None", int anotherNumber);
..
int func(int number, std::string name, int anotherNumber){
...
}
func(1, 2);
^Error, name is NULL yet we've defined a default value?
编译器给出一个错误,抱怨参数是 NULL 并且不应该是。然而我已经为它定义了一个默认值。
这是为什么?
【问题讨论】:
-
这不应该是唯一的错误。您不能只给任何参数一个默认值,它们必须位于参数列表的末尾。
-
为什么一定要放在最后?是否只是 C++ 所做的我们无能为力的事情?
-
您没有显示真正的错误。不要胡编乱造;从您的输出中粘贴它们。
-
@JoeBid:考虑
void f(int, int = 1, int = 2, int);。f(3, 4, 5)是什么意思? -
嗯,我想我现在明白了。有道理。
标签: c++ default-value