4

我假设不是,但我只是想检查一下 - C++ 中有什么方法可以执行以下操作吗?显然,当我尝试以下操作时,我得到一个关于 bar 的基于范围的错误。

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

1 回答 1

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);
}
于 2010-08-09T19:56:43.497 回答