vec - это пользовательский класс вектора с текущим значением (4,0,0), а _vec - вектор с текущим значением (1,0,0).Петля и порядок операций
operator- = перегружен так, что вектор [я] = вектор [я] -rhs.vector [я]
for (int i = 1; i < 4; ++i) {
vec-= _vec;
}
if(vec==_vec){
return true;
}
, если я использую этот код, функция возвращает истину, и VEC [ 0] показано, что 1
((vec-= _vec) -= _vec) -= _vec;
if(vec==_vec){
return true;
}
Однако, когда я использую этот код, функция возвращает ложь, и VEC [0], кажется, 3. являются ли эти два кода предполагается сделать то же самое ? Я не совсем понимаю, почему последний не работает.
Что возвращает ваш 'vec - = _vec'? –
оператор- = установлен для возврата * этого. Прохождение через отладочный компилятор показывает, что vec вычитается полностью до 1 с каждым раз - = _ vec вызывается, но в конце строка, кажется, возвращает vec = 3,0,0 –
Хммм ... что происходит если вы удалите круглые скобки? Компилятор? –