Sobes.tech
Junior — Middle
135

U kojim slučajevima se preporučuje korišćenje operatora dynamic_cast u C++?

Компаније где су питане
ГК Адепт

Одговор од АИ

sobes.tech АИ

Оператор dynamic_cast в C++ используется для безопасного приведения указателей или ссылок в иерархии наследования, когда нужно проверить, действительно ли объект принадлежит целевому типу или его подклассу.

Рекомендуется применять dynamic_cast в следующих случаях:

  • При приведении вниз по иерархии классов (downcasting), когда есть указатель или ссылка на базовый класс, а нужно получить доступ к производному.
  • Когда требуется проверить тип объекта во время выполнения (RTTI).
  • Для безопасного приведения, так как при неудаче dynamic_cast возвращает nullptr для указателей или выбрасывает исключение для ссылок.

Пример:

class Base { virtual void foo() {} };
class Derived : public Base {};

Base* b = new Derived();
Derived* d = dynamic_cast<Derived*>(b);
if (d) {
    // Приведение успешно
} else {
    // Приведение не удалось
}