我想知道如何跳过覆盖C ++函数中的参数。例如,查看下面的函数,如果输出有1个参数,你可以调用它而不发送任何参数,比如output();
这将输出5,因为xor的默认值为5.但是,如果我想覆盖" vor",并将xor保留为其默认值,我该怎么做?
输出(NULL,20);
以上没有工作,只是将xor初始化为0.
void output(int xor = 5, int vor = 15) {
cout << xor << " " << vor << endl;
}
int main()
{
output(10, 20);
}
答案 0 :(得分:2)
如果要覆盖第二个默认参数,则必须指定第一个参数。
该功能的可能调用如下
output(); // corresponds to output( 5, 15 );
output( x ); // corresponds to output( x, 15 );
output( x, y ); // corresponds to output( x, y );
其中x和y是一些任意参数。
答案 1 :(得分:0)
要完全实现您想要实现的目标,您可以在output()
中切换参数顺序,如下所示:
void output(int vor = 15, int xor = 5) {
cout << xor << " " << vor << endl;
}
然后,您可以调用output(20)
覆盖vor
,同时将xor
保持为默认值。