У меня есть два класса A и B, определенные в большой кодовой базе. Я хотел бы создать псевдоним типа, который означает «A или B». Обратите внимание, что этот класс никогда не переключится с A на B во время выполнения (и наоборот). Как я могу это сделать?
Я думал просто создать пустой класс AorB и сделать так, чтобы A и B оба были производными от него. Однако я бы предпочел не изменять A или B.
Я думал об использовании объединения, но это кажется расточительным с точки зрения памяти, так как это оставляет место для самого большого класса.
Чтобы попытаться прояснить ситуацию, вот код, иллюстрирующий мой вопрос:
class A;
class B;
//typedef AorB = A || B //<- how can I do sthg like that ?
class C {
AorB myAorB; // once this object is set, it cannot change its underlying type (it stays an A or a B)
};