Как работает dynamic_cast

Не совсем могу понять для чего нужен и как работает dynamic_cast

class Base
{
public:
    virtual ~Base() = default;
    virtual void p()
    {
        std::cout << "Base class";
    }

};
class Derived : public Base
{
public:
    virtual ~Derived() = default;
    void p() override
    {
        std::cout << "Derived class";
    }

};
int main()
{
    Derived *b = new Derived();
    if (dynamic_cast<Base*>(b))
        b->p();
    return 0;
}

Разве не должно вывести Base class?


Ответы (0 шт):