4

私はそうではないと思いますが、チェックしたかっただけです.C++で次のようなことをする方法はありますか? 明らかに、以下を試すと、バーに関するスコープベースのエラーが発生します。

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 に答える