Я исхожу из Python, и у меня есть некоторые проблемы с управлением типами в c ++. В Python я могу сделать что-то вроде этого:
if condition_is_true:
x=A()
else:
x=B()
а в остальной части программы я могу использовать x, не заботясь о типе x, учитывая, что я использую методы и переменные-члены с тем же именем и аргументами (не обязательно, чтобы A и B имеют одинаковые базовые классы). Теперь в моем коде C ++ тип A соответствует
typedef map<long, C1> TP1;
, а B -:
typedef map<long, C2> TP2;
, где:
typedef struct C1
{
char* code;
char* descr;
int x;
...
}
и
typedef struct C2
{
char* code;
char* other;
int x;
...
}
C1 и C2 имеют похожие члены, а в той части кода, о которой я говорю, мне нужно использовать только те, с тем же именем / типом
Я хотел бы сделать что-то вроде:
if (condition==true)
{
TP1 x;
}
else
{
TP2 x;
}
каков правильный подход в C ++?
заранее спасибо