Код:
* A* pA_1 = new A();
* Base *pBase_1 = dynamic_cast<Base*>(pA_1);
* Base *pBase_2 = static_cast<Base*>(pA_1);
//оба варианта работают, dynamic_cast работает, потому что
//Base выше по иерархии
* Base* pBase_3 = new Base();
* A* pA_2 = dynamic_cast<A*>(pBase_3);
* A* pA_3 = static_cast<A*>(pBase_3);
//работает только static_cast,
//считается небезопасным, потому что теперь можно
//вызвать метод, которого нет в Base, а dynamic_cast сразу возмущается по этому поводу
зачем нужно
Код:
Base* pBase = new A();
К сожалению не догадался