Change History (2)

comment:1 Changed 4 years ago by Артур Гулецкий (huletski)

Type: ожидается проверкаожидаются исправления
Version: 1.0

Замечания:

matrix.h

  • исключения можно наследовать от классов из std, тогда можно будет ловить их по ссылке на базовый класс;
  • print/load лучше сделать через перегрузку операторов;
  • в Matrix::load, если решили не перегружать, лучше передавать std::istream& (хотя бы для симметричности с Matrix::print). Мотивацию обсудили на практике;
  • у swap напрашивается noexcept, у других методов, которые не бросают исключения, тоже можно пропоставить;

matrix.cpp

  • конструкторы: используйте списки инициализации; неожиданно, что _data может мусор хранить после завершения работы конструктора;
  • базовые гарантии нарушены: если исключение вылетит в строке 20, кто и когда освободит память, на кот. указывает buffer?
  • 22: почему-то имя переменной с заглавной буквы; в конструктор исключения, принимающий ссылку на std::string, можно передать строковый литерал непосредственно (у std::string есть конструктор от const char*);
  • 32-36: дублирование кода выделения и инициализации памяти для хранения матрицы;
  • 65: неясно как i и j могут быть отрицательными при их типе;
  • 114: лишний whitespace в конце строки;
  • 143: неясно откуда bad_alloc может вылететь;
  • 155: product - более точное имя;
  • 165: откуда bad_alloc? В ходе конструирования временной матрицы ans если bad_alloc и бросается, то ловится в конструкторе матрицы и оборачивается в MatrixException?.

Баллы: 6.5, доделывайте.

Last edited 4 years ago by Артур Гулецкий (huletski) (previous) (diff)

comment:2 Changed 4 years ago by Артур Гулецкий (huletski)

Resolution: задача сдана
Status: assignedclosed

Дедлайн.

Note: See TracTickets for help on using tickets.