Как работает динамический_каст?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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