Ваши типы, с точки зрения системы типов C ++, совершенно не связаны.Чтобы вызвать отношения, требуется какое-то стирание типа ;это может быть либо обычно реализуемый интерфейс, либо механизм, подобный Boost.Any
, как предлагали другие.
Однако, обратите внимание, что объединение разных вещей - это не очень хороший дизайн, поэтому вам, вероятно, стоит добавитьхотя в значимом общем интерфейсе, который позволяет вам делать все необходимые вещи без чрезмерного подавления в дальнейшем.