Назад к вопросам
Junior — Middle
101
В каких случаях рекомендуется применять оператор dynamic_cast в C++?
Компании, где спрашивали
ГК Адепт
Ответ от нейросети
sobes.tech AI
Оператор 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 {
// Приведение не удалось
}