Opened 3 years ago
Closed 3 years ago
#341 closed ожидается проверка (задача сдана)
WW #7
Reported by: | Маргарита Михельсон | Owned by: | Святослав Власов |
---|---|---|---|
Component: | WW Matrix | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (6)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Upd:
Хочется увидеть ассерты в тех местах, где программа может упасть (например когда размеры матриц не подходят друг к другу)
comment:3 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:4 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Всё ок, кроме одного -- в операторе *=
у тебя лишний раз вызовется оператор присваивания: сначала создастся временный объект, куда запишется результат умножения матриц, а затем этот временный объект через оператор присваивания будет скопирован в *this
. Давай ты попробуешь от этого избыточного копирования избавиться.
9/10 пока.
comment:5 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
Note: See
TracTickets for help on using
tickets.
Либо
либо
new
(за два или даже один)this->
каждый раз когда ты хочешь вызвать метод у того же объекта, избыточно. Можно просто вызывать метод по имени, он по умолчанию вызывается уthis
.!this->operator==(m)
вообще за гранью добра и зла :) Можно просто написать!(*this == m)
Во всех адекватных стайлгайдах опускать фигурные скобки допустимо только когда тело цикла или условия -- это одна единственная строчка, а когда строк несколько, нужно их заключать в фигурные скобки. Т.е. вот так писать можно:
А вот так нельзя:
Вместо этого пишется
==
с аргументами по значению, т.е. у тебя вызываетсяoperator==
, который сравнит матрицы поэлементно, а это совершенно не нужно. Достаточно сравнить указатели.eval_operator
иeval_op_assign
хорошая, только я бы не рекомендовал использовать символьные литералы ('+', '-'
), вместо этого лучше в приватной области видимости завестиenum
с константамиPLUS, MINUS
и использовать их.