Как работает динамический_каст?C++

Программы на C++. Форум разработчиков
Anonymous
Как работает динамический_каст?

Сообщение Anonymous »

Если у вас было следующее:

Код: Выделить всё

class Animal{};

class Bird : public Animal{};

class Dog : public Animal{};

class Penguin : public Bird{};

class Poodle : public Dog{};
Dynamic_cast просто проверяет, является ли один класс производным классом другого или один класс является базовым классом другого? Итак, если бы у меня было:

Код: Выделить всё

Bird* bird;
Animal* animal;

bird = dynamic_cast(bird);
animal = dynamic_cast(animal);
теперь будет указывать на класс Animal, так что я могу использоватьbird->some_function(); и он вызовет функцию из Animal? И Animal теперь указывает на класс Bird, так что я могу выполнить Animal->some_function();, и он вызовет some_function(); в Bird ?

Я пытался понять, как работает Dynamic_cast, и ресурсы, которые я нашел в Интернете, оказались не самыми полезными. Если кто-то может предложить другую информацию о функциональности Dynamic_cast и некоторых случаях, когда это может быть полезно, я буду очень признателен.

Подробнее здесь: https://stackoverflow.com/questions/137 ... -cast-work

Вернуться в «C++»