方法采用两个默认参数

Adr*_*ian 2 c++

我有一个方法,具有以下定义:

void foo(int i = 0, bool flag = false) {}
Run Code Online (Sandbox Code Playgroud)

我想通过仅传递第二个参数来调用foo():

foo(true);
Run Code Online (Sandbox Code Playgroud)

但是像这样它总是将它传递给第一个参数(i).
有没有其他解决方案我可以将我的论点传递给第二个参数?或者唯一的方法是通过第一个.

foo(0, true);
Run Code Online (Sandbox Code Playgroud)

Ben*_*ley 7

技术上没有.但你可以用重载来伪造它,因此:

void foo(bool flag)
{
    foo(0,flag);
}
Run Code Online (Sandbox Code Playgroud)