Opened 3 years ago
Closed 3 years ago
#526 closed ожидаются исправления (задача сдана)
Lab 10
Reported by: | antonenko.mixail | Owned by: | Святослав Власов |
---|---|---|---|
Component: | WW cpp_io | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (4)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Тесты -- это классно, только в мейкфайле делай цель all выше всех остальных, чтобы при запуске make без аргументов запускалась она, а не тесты.
- Почему-то тесты прошли, но в конце вывода написалось "Had error while reading". O_o
- Какой смысл делать операторы ввода/вывода френдами для наследников? Они ни к каким приватным полям не лезут.
- Постоянно выделяешь килобайтовый буфер под имя, даже если оно 2 символа. Можно поэкономнее обращаться с памятью, особенно когда вам разрешили пользоваться такой замечательной вещью как
std::string
- Не надо так делать
if (s.fail()) cout << "Failed to read. Are strings null-terminated?\n";
. Оператор ввода ничего не должен лишнего выводить на экран. Это задача вызывающего кода отреагировать на невалидное состояние потока и упасть или сообщить об этом пользователю. И если решил выводить сообщения об ошибках, то лучше делать это вstd::cerr
9/10
comment:4 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
Тесты прошли
Стиль
'\n'
лучше юзатьstd::endl
read
уEmployee
, переопределить её в наследниках, и затем в операторе<<
вызвать её уEmployee&
. То же самое для вывода.За корректность 7/10, но спроектировано это не так, как нужно, поэтому за стиль 0/3.