水曜日, 3月 07, 2007

C++で&&や||オペレータ

C++で、&&やは演算子の多重定義ができるのだが、
SomeClass A;
int b = 0;
if (A && ((b=b+1) == 2)) {
...
}

というプログラムがあり、SomeClassでboolへのキャスト演算子と&&演算子が多重定義されている場合、Aをboolにキャストして真の場合のみ、((b=b+1) == 2)) が評価され、そうでない場合は、((b=b+1) == 2)) を評価しないようにすることはできるのだろうか?

0 件のコメント: