初始化未命名的C ++参数有什么意义?例如:
void foo(int = 0) {}
答案 0 :(得分:2)
声明不需要参数名称。但是,定义确实如此。此外,默认参数不能在定义中重复。这是一个有效的小程序(但我不知道你为什么要这样做,真的......):
#include <iostream>
void foo(int = 5);
int main() {
foo();
foo(3);
return 0;
}
void foo(int i) {
std::cout << i << std::endl;
}
输出
5
3
答案 1 :(得分:1)
它将作为默认参数值。它属于函数声明。
答案 2 :(得分:1)
我可以想象在回调函数的上下文中,构造可能很有用:
#include <iostream>
// Please assume the callback is an external library:
typedef void (*callback_function)(int);
callback_function callback;
void foo(int = 0) {
std::cout << "Hello\n";
}
int main() {
callback = foo;
callback(1);
foo();
}