Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

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

Матрицы

Reported by: chudov.aleksandr Owned by: Vladimir Rutsky
Priority: проверка Milestone:
Component: HA#1 matrices Version:
Keywords: Cc:

Change History (4)

comment:1 Changed 8 years ago by Vladimir Rutsky

Milestone: ha1-milestone1ha1-milestone2
Type: ожидается проверкаожидаются исправления

Замечания:

  1. В заголовочном файле не стоит вносить в глобальную область видимости сущности из std:
using std::istream;
using std::ostream;
using std::string;

Таким образом вы "загрязняете" глобальную область видимости для всех пользователей вашего заголовочного файла. Перенесите эти using в matrix.cpp.

  1. Вы не освобождаете выделенную память (у вас есть вызовы new, но нет ни одного delete/delete[]). В C++ нет сборщика мусора и вся выделенная память должна быть явно освобождена. Для упрощения работы с памятью стоит использовать специальные контейнеры (вроде std::vector) и подходы (вроде RAII), но они не предполагались к использованию в данной задаче, т.к. это первая задача и вы ещё не должны были всего этого пройти.


Так как работа с памятью требует некоторый аккуратности, лучший способ избежать ошибок при выделении/освобождении памяти, это постараться избежать лишнего выделения памяти (что, кстати, сильно улучшает производительность).
Например, в openFile вы создаёте ifstream в куче, что создаёт сразу ряд проблем: кто освободит память? что делать, если произошла ошибка, кто в данном случае освободит память?

Постарайтесь не выделять лишний раз память в куче, а использовать объекты, хранимые на стеке. Например, в большинстве работ ваших сокурсников память явно выделяется только для буфера double-ов в матрице.

  1. Файлы с реализацией функций работы с матрицами должны называться matrices.cpp/matrices.hpp.
  1. Не используйте нестандартные расширения языка. Например, здесь вы использовали расширение G++/clang variable length array:
string args[argc - 1];
  1. Используйте size_t здесь, раз argc у вас size_t:
Matrix &calculateMatrices(size_t argc, string args[])
{
...
	for (int i = 1; i < argc; i += 2)

comment:2 Changed 8 years ago by chudov.aleksandr

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

comment:3 Changed 8 years ago by Vladimir Rutsky

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

Решение зачтено.

comment:4 Changed 7 years ago by Vladimir Rutsky

Milestone: ha1-milestone2

Milestone ha1-milestone2 deleted

Note: See TracTickets for help on using tickets.