例如:
void DoSome(int a = 10, int b = 10 ) {
std::cout << a + b << std::endl;
}
的工作原理。但
void DoSome(int a = 10, int b ) {
std::cout << a + b << std::endl;
}
不会。
答案 0 :(得分:6)
您的特定示例可能有效,但请考虑更常见的情况:
void foo(int = 10, int, int = 20);
现在foo(1, 2)
是什么意思?它可以是foo(10, 1, 2)
或foo(1, 2, 20)
。这是令人困惑的,并且与确定实际论点的大量精神负担相比,允许这样做几乎不会增加便利性。