我假设没有,但我只是想检查 - 在C ++中是否有任何方法可以执行以下操作?显然,当我尝试下面的内容时,我会得到一个关于bar的基于范围的错误。
void foo(Bar bar, int test = bar.testInt) { ... }
答案 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);
}