Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#782 closed ожидается проверка (задача сдана)

#WW_14

Reported by: Ruslan Salkaev Owned by: Sokolov Viacheslav
Component: WW_exceptions Version:
Keywords: Cc:

Description


Change History (13)

comment:1 Changed 4 years ago by Sokolov Viacheslav

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

4 #include <exception>
не нужно в include/matrix.h

get_elem
можно именовать просто at

set_elem
можно именовать просто set

Какая мотивация использовать int в этих методах для размеров?

9 explicit MatrixException?(int err);

лучше сделать enum (class), чтобы явно указывать тип ошибки (меньше возможностей ошибиться)

88 void add(Matrix &matrix1, const Matrix matrix2) {
89 matrix1 = matrix1 + matrix2;
90 }

обычно реализуют operator += (-=, *=, ...), через который уже выражается +,-,*,...

Какая мотивация использовать std::vector<Matrix *> , а не std::vector<Matrix>?

67 Matrix &Matrix::operator=(const Matrix &other) {
68 if (this == &other) return *this;
69 Matrix tmp(other);
70 std::swap(rows_, tmp.rows_);
71 std::swap(cols_, tmp.cols_);
72 std::swap(data_, tmp.data_);
73 return *this;
74 }

проще тогда аргументом делать Matrix, а не const Matrix&

76 Matrix Matrix::operator+(const Matrix other) {
&?

не проверяется успешность считывания (failbit, badbit)

всегда выставляйте .exceptions на failbit, badbit для стандартных потоков ввода/вывода, если не считаете их ожидаемыми

comment:2 Changed 4 years ago by Ruslan Salkaev

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

comment:3 Changed 4 years ago by Sokolov Viacheslav

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

36 void set(std::size_t row, std::size_t col, int val);

int32_t

18 explicit MatrixException?(Exception e);
20 const char *what() const;

Желательно noexcept

71 for (int32_t i = 0; i < rows; ++i) {
72 for (int32_t j = 0; j < cols; ++j) {
73 tmp.set(i, j, tmp_data[i][j]);
74 }
75 }

size_t?

все еще

не проверяется успешность считывания (failbit, badbit)

(из std::ifstream is)

comment:4 Changed 4 years ago by Ruslan Salkaev

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

comment:5 Changed 4 years ago by Sokolov Viacheslav

неправильное сообщение об ошибке в случае обрыва файла (basic_ios::clear: iostream error)

comment:6 Changed 4 years ago by Ruslan Salkaev

Исправил

comment:7 Changed 4 years ago by Sokolov Viacheslav

как насчет протестировать?

comment:8 Changed 4 years ago by Ruslan Salkaev

Да, хорошая идея. Нашел ошибку при загрузке пустого файла.

comment:9 Changed 4 years ago by Sokolov Viacheslav

То есть можно смотреть и все работает, как написано в задании? Точно-точно?

comment:10 Changed 4 years ago by Ruslan Salkaev

Я проверил все что был в условии, и хочется верить, что я не настолько невнимательный, чтобы опять что-то не заметить.

comment:11 Changed 4 years ago by Sokolov Viacheslav

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

2 3
11 12 13
14 15

при загрузке файла с таким содержим получаю
"basic_ios::clear: iostream error"
а должно быть "LOAD: invalid file format."

53 if (row < 0
row >= rows_ col < 0 col >= cols_) <0 не имеет смысла для size_t

comment:12 Changed 4 years ago by Ruslan Salkaev

Действительно, если добавить в конец такого файла перенос строки, то выдаст такую ошибку. В файле на котором я тестил аналогичный ввод, перенос я не добавил.

Last edited 4 years ago by Ruslan Salkaev (previous) (diff)

comment:13 Changed 4 years ago by Sokolov Viacheslav

Этот перенос строки влияет на то, достигнут eof или нет.

Note: See TracTickets for help on using tickets.