Opened 3 years ago

Closed 3 years ago

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

WW cpp_io (lab_10) Korkin

Reported by: korkin.igor Owned by: Антон Филатов
Component: WW cpp_io Version: 3.0
Keywords: Cc:

Description

If you want it, I'm gonna be va va voom voom
I wanna kill myself, kill myself with gun: boom-boom

Change History (5)

comment:1 Changed 3 years ago by Антон Филатов

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

А не с Киселёвым ли вы вместе лабу делали? очень похожие ошибки

  • беда с \0 в конце имени иногда
  • _ostream и семейство у родителя должны быть либо чисто виртуальными, либо с каким-то вменяемым телом. А то пока пустое тело - не надо так
  • а у потомков в этих функциях копипаста. Как раз в родителя её можно и убрать
  • out.write((char*) &e_class, sizeof(char) * 4); - а sizeof(int) вам почему не нравится?
  • Вот это место
if (e_class == 1) {
			Developer* employee = new Developer("", -1, 0);
			file >> *employee;
			_employees.push_back(employee);
		}

		else {
			SalesManager* employee = new SalesManager("", 0, 0, 0);
			file >> *employee;
			_employees.push_back(employee);
		}

можно изящнее сделать:

Employee* e = nullprt;
file >> type
e = create_by_type(type) // эта функция возвращает пустого потомка, того или другого
file >> e
employees.push_back(e)

ну и 50ю строчку из main выпилите что-ли, а то как-то совсем тлен.
Пока из-за не проходящих тестов
3/10

comment:2 Changed 3 years ago by korkin.igor

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

ЫыыЫЫЫыыЫЫыыы...

comment:3 Changed 3 years ago by Антон Филатов

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

Тесты пройдены.

Стиль:

  • Вот этот код:
char char_ = _name[0];
	for (std::size_t i = 1; i < _name.size() && char_ != '\0'; i++) {
		out << char_;
		char_ = _name[i];
	}

Во-первых std::string прекрасно cout-ится. Если при этом надо выпилить \0, то у этого класса есть замечательные методы вырезания конкретного элемента из строки.
Если уж вы хотите сделать максимально эффективно, то вынесите в отдельную функцию, а то копипастите в нескольких местах. Ну и base salary вы тоже выводите у обоих потомков не изящно - копипастите

  • Когда я увидел 44-ю строку main, я было подумал, что это вот это видео будет: https://youtu.be/dQw4w9WgXcQ

Но давайте как-то впредь посерьёзнее. Пасхалки - это весело, но либо прячьте лучше, либо воздержитесь

  • Ещё раз перепроверьте, везде ли вы выпилили sizeof(char) * 4

8.5/10

comment:4 Changed 3 years ago by korkin.igor

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

Ну, версия была не финальная, так что я решил добавить мемчек. х))
Но больше не буду.)

comment:5 Changed 3 years ago by Антон Филатов

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

Тесты пройдены с точностью до "Items price"

  • функция ostream_dezero - не понятно её назначение. Кажется, что её тело вполне прекрасно помещается в _ostream

9,5/10

Note: See TracTickets for help on using tickets.