Имеется такой код:
class CBase
{
public:
virtual void MyVoid()=0;
};
class CDerv1 : public CBase
{
...
};
class CDerv2 : public CBase
{
...
};
...
т.е. есть некий базовый абстрактный класс, у которого много наследников.
Далее происходит вот что:
CBase *pBase = new CDerv1;
Вопрос : очевидно, например с помощью typeid мы можем узнать тип объекта, на который на самом деле указывает pBase. Существует ли простой способ автоматически преобразовать pBase из типа CBase* в тип того объекта, на который он на самом деле указывает (в данном случае в CDerv1*)?