Opened 4 years ago
Closed 4 years ago
#649 closed ожидается проверка (задача сдана)
WW #11
Reported by: | Tarabonda German | Owned by: | Дмитрий Свиридкин |
---|---|---|---|
Component: | WW cpp_io | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Tarabonda German |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Owner: | changed from Tarabonda German to Дмитрий Свиридкин |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:3 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Tarabonda German |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Base salary -> Base Salary
Конструкторы копирования и операторы присваивания принимают константные ссылки.
Если попытаться напечатать созданный конструктором по умолчанию объект-наследник Employee, то, в зависимости от состояния памяти, все может упасть, зациклиться или просто напечатать мусор.
8/10
comment:4 Changed 4 years ago by
Owner: | changed from Tarabonda German to Дмитрий Свиридкин |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:5 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Проблему с мусором при конструировании объекта не решили -- нужно занулить память, выделенную под name_; А еще лучше в принципе не выделять память в конструкторе по умолчанию.
9/10
Note: See
TracTickets for help on using
tickets.
Has Bonus -> Has bonus
Sold Items -> Sold items
Item Price -> Item price
С чтением из бинарного байла что-то не так. Если имя длиннее 8 символов, все сломается.
В коде реаллокации массива ошибка. Одна и та же в двух местах. Кстати, зачем выделять память дважды?
В операторы вывода объекты следует передавать по константной ссылке.
У вас заведены константы (лучше завести enum) для разных типов, а в switch вы используете магические числа.
в case блоке можно оставить только определения конкретного типа, а остальное вынести. Подумайте, почему.
Реализацию тривиальных конструкторов и деструкторов лучше переложить на компилятор (= default).
Еще стоит вспомнить, что у тривиальных типов нет конструкторов --- у вас можно создать объект, не читать его из потока, он останется в неконсистентом состоянии и упадет в деструкторе по corrupted free
В read_c_str ссылка на указатель не нужна.
Вспомагательные методы read/print, вероятно, должны быть protected
Для некоторых классов надо запретить копирование.
5/10