Объявление другого типа объекта с помощью макроса
Мне нужно справиться с нижеприведенным сценарием.
class A() { int i; }; class B() { int j; }; class C { int k; }; class D { int l; } class E:A { MYMACRO obj };
Если класс E является производным от класса A, то макрос MYMACRO должен создавать объект типа C, тогда как если класс E является производным от класса B, то макрос MYMACRO должен создавать объект типа D.
Как достичь этого с помощью макроса?
Мое требование состоит в том, что я не должен упоминать тип объекта при объявлении.Макрос должен проверить, является ли текущий класс производным от того или иного.Затем он должен создать объект разных типов.
Если есть какое-либо другое решение, кроме использования макроса, пожалуйста, предложите мне?
Что я уже пробовал:
Я исследовал его, но не смог получить решение для своего сценария.
0x01AA
Я думаю, что это плохой дизайн и сумасшедшая идея. Я скажу, что даже если вы сможете решить эту проблему с помощью макросов, вы не сможете поддерживать ее в будущем.
Philippe Mori
Даже если бы вы нашли способ сделать это, вам пришлось бы где-то объявить отображение...