Задание на третью лабораторную работу состоит из двух частей: во-первых, необходимо представить себе общую организацию библиотеки ввода/вывода, организованной с использованием паттерна Decorator (и построить соответствующую диаграмму), во-вторых, необходимо реализовать какую-то часть этой библиотеки (в соответствии с выбранным вариантом).
При реализации необходимо разделять определение класса на заголовочный файл (*.h), содержащий интерфейс класса, и файл реализации (*.cpp), содержащий определение методов.
Необходимо разработать систему исключений (exceptions) и генерировать их в случае возникновения ошибок в работе библиотеки.
Таблица 1. Варианты заданий на 3 лабораторную работу