Для такого случая насколько верна замена B* b = (B*)a;
для предбразования в C++ стиле, т. е что нужно использовать из списка
B* b = static_cast<B*>(a);
B* b = dynamic_cast<B*>(a);
B* b = reinterpret_cast<B*>(a);
class A
{
public:
virtual int get_int() = 0;
};
class B: public A
{
public:
int get_int() {return 0;}
};
A* a = new B();
B* b = (B*)a;