0
vecは現在の値が(4,0,0)のカスタムクラスのベクトルで、_vecは現在の値が(1,0,0)のベクトルです。ループとオペレーションの順序
私はこのコードを使用する場合、関数は真を返し、VEC [i]は
for (int i = 1; i < 4; ++i) {
vec-= _vec;
}
if(vec==_vec){
return true;
}
ベクトルは[I] =ベクトル[I] -rhs.vectorようoperator- =オーバーロードされています0]私はこのコードを使用する場合、関数はfalseを返し、VECは[0] 3. が同じことを行うことになって、これらの2つのコードではないですのようです、しかし1
((vec-= _vec) -= _vec) -= _vec;
if(vec==_vec){
return true;
}
であることが示されています?私はなぜ後者がうまく動作しないのか分かりません。
あなたの 'vec - = _vec'は何を返しますか? –
operator- =が* thisを返すように設定されています。デバッグコンパイラを見てみると、vecは1つずつ減算されています - = _ vecが呼び出されますが、最後にvec = 3,0,0が返されるようです。 –
Hmmm ...どうなりますかかっこを削除すれば?コンパイラは悩む? –