有没有办法将参数默认值设置为上一个参数的函数? [C ++]

时间:2010-08-09 19:54:12

标签: c++ parameters default-parameters

我假设没有,但我只是想检查 - 在C ++中是否有任何方法可以执行以下操作?显然,当我尝试下面的内容时,我会得到一个关于bar的基于范围的错误。

void foo(Bar bar, int test = bar.testInt) { ... }

1 个答案:

答案 0 :(得分:7)

如果test的值无效,您可以检测到:

void foo(Bar bar, int test = -1) { //assuming -1 is invalid
    if(test == -1) test = bar.testInt;

    //...
}

如果没有,您可以随时使用重载函数:

void foo(Bar bar, int test) {
    //...
}

void foo(Bar bar) {
    foo(bar, bar.testInt);
}
相关问题