Разработать абстрактный класс Obj, который будет использоваться в качестве базового класса для всех типов данных. Он содержит чистые виртуальные функции, которые определяют свойства, общие для всех объектов. К ним относятся свойства копирования и удаления объектов, их сравнения, а также возможность получить реальное имя типа данных.
Более частными свойствами являются свойства объектов, связанных с возможностью их ввода-вывода на различные устройства. Для описания таких свойств ввести абстрактный класс InOut, наследованный от Obj. Все классы предыдущего задания наследовать от класса InOut.