e2e4 писал(а):
По-моему, механизм наследования и ссылок в Си++ (ну и сопутствующие, типа динамического приведения типов) как раз и разработаны ради того, что Вы описали.
В C++ интерфейсы реализуются как абстрактные классы без данных.
В более современных языках это выделено в особый механизм. Создаваемый Вами класс
наследует класс родителя и
реализует интерфейсы. В языках, где не разрешено множественное наследование, тем не менее возможна реализация нескольких интерфейсов.
В С++, где есть множественное наследование, новый класс просто наследует все нужные классы. При этом абстрактный класс без данных ведет себя как интерфейс - в наследнике должны быть реализованы все его методы.