Opened 4 years ago
Closed 4 years ago
#657 closed ожидается проверка (задача сдана)
WW #11
Reported by: | Бубнов Данил Константинович | 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 Бубнов Данил Константинович |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Owner: | changed from Бубнов Данил Константинович to Дмитрий Свиридкин |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
Теперь базе указатели передаются во владение.
Манипулятор исправил, теперь для при чтении строки я создаю массив char, передаю его в манипулятор, потом этот массив преобразую в string, сразу решилась проблема с лишними символами.
comment:3 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Бубнов Данил Константинович |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Поле type_ не имеет смысла -- каждый объект и так знает, какого он типа
Зачем нужно поле size_ если у вас и так vector?
assert((int)name.size() <= MAX_NAME_LENGTH);
Не очень полезный assert, если вы храните std::string
Вместо магических констант для типов лучше завести enum
Код, разбирающий типы, нужно убрать из main -- этим должен заниматься модуль, а не пользовательский код
7/10
comment:4 Changed 4 years ago by
Owner: | changed from Бубнов Данил Константинович to Дмитрий Свиридкин |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
За пол часа я так и не смог найти в Интернете, как узнать, в каком режиме открыт istream, и как понял, это невозможно.
comment:5 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Явно вызывать close у файлов не обязательно -- деструктор сам все закроет
Да, различить std::istream открытый бинарно или текстово -- невозможно. Можно, только сделав дополнительную обертку.
9.9/10
У вас при выводе в текстовый поток куча нулевых символов выводится. Помедитируйте над resize для std::string
Какоей-то у вас совсем жуткий copy-and-swap
Тут же проще
Developer::Developer(const Developer& dev) : Developer(dev.name_, dev.base_salary_, dev.has_bonus_) {}
Раз уж начали использовать умные указатели, используйте до конца.
Зачем создавать, потом копировать, потом удалять? Передавайте сразу владение указателем.
манипуляторы для c-строк должны работать с c-строками. Иначе какой в них смысл?