В общем есть три класса:
Пространство имён ЕГЭ
{
Класс Образовательное_учреждение
{
Строка Название_ОУ;
Число Номер_ОУ;
Коллекция Ученики;
}
Класс Ученик
{
Строка Фамилия, Имя, Отчество;
Символ Пол;
Число Номер_паспорта;
Коллекция Предметы;
}
Класс предмет
{
Строка Название;
Дата Дата_сдачи;
Число Первичный_балл, Итоговый_балл;
}
}
Нужно продемонстрировать некоторые возможности ООП, а именно:
- Дружественные функции;
- Статичные методы;
- Конструкторы, деструкторы;
- Исключения;
- Интерфейсы;
- Шаблоны;
- Абстрактные классы и их абстрактные/виртуальные функции и их наследование;
Собственно возникает вопрос только по последнему пункту, где здесь более адекватно реализовать абстрактный класс с его методами? И чтобы он наследовался одним из наших классов? И конечно, чтобы осталось место для интерфейсов.
Данные классы не эталонные, можно свободно добавить новый класс и/или изменять поля этих классов. Реализация будет на C++, C#, Java, так что желательно исходить из их возможностей.