Opened 3 years ago

Closed 3 years ago

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

WW_cpp_io Tyuryaev lab_10

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

Description


Change History (5)

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

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

Ломается тест, где нужно считать из файла работников, у которых длина имени 100 символов

Стиль:

  • Кажется, что метод get_id - не очень удачное решение. Я бы предложил в write-ах потомков сначала писать id - известный для this потомка, потом вызывать Employee::write, а потом ещё там свою часть.

Может, даже можно public const id сделать.
Во всяком случае return 1 или return 2 - это плохой стиль. Нужна константа, которую можно запихнуть повыше в файл, чтобы сразу было видно. return "Sales Manager" - тоже плохо. Тоже нужна константа, которая устанавливается в конструкторе

  • те методы, где у вас assert(false) по-хорошему должны быть чисто виртуальными ( = 0 )
  • вместо cout << '\n' делайте cout << std::endl;

5/10

comment:2 Changed 3 years ago by tyuryaev.ilya

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

До конца не понял как заменить методы get_id/get_name, поэтому сделал константы внутри классов

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

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

Тесты все проходят

Сейчас вы константы сделали почти правильно.
Смотрите, у васшего класса Employee есть методы get_vocation_name() и get_vocation_id(), которые равны нулю. Но в потомках они переопределяются. И копипастятся: return vocation_name;

А почему бы не дать vocation_name и vocation_id классу Employee, определить для него один раз геттеры. А в конструкторах наследников уже на место этой константы подставлять нужное число (через список инициализации)

И ещё одно замечание: кажется, что функции get_emp не место в общей области видимости. Но быть частью Employee она не может, поскольку нельзя, чтобы базовый класс знал про своих потомков. Зато эту функцию можно сделать приватной для класса EmployeeArray?. Ну или хотя бы сделать её статической

9/10

comment:4 Changed 3 years ago by tyuryaev.ilya

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

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

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

10/10

Note: See TracTickets for help on using tickets.