Для такого случая насколько верна замена 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;
Здравствуйте, Аноним, Вы писали:
А>Для такого случая насколько верна замена 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;
А>
достаточно static_cast
если не уверен, что а ссылается на объект типа В — dynamic_cast, он проверит