Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператор dynamic_cast



Оператор dynamic_cast реалізує приведення типів в режимі виконання, що дозволяє контролювати правильність цієї операції під час роботи програми. Якщо при виконанні цього оператора приведення не відбулося, виробляється помилка приведення типів.

Синтаксис використання оператора наступний:

dynamic_cast<type>(expr)

В| кутових дужках замість type задається цільовий тип, до якого потрібно перетворити значення виразу expr, заданого в круглих дужках.

Цільовий тип повинен бути типом вказівника або посилання; результат приведення виразу теж стає вказівником або посиланням. Таким чином, оператор dynamic_cast використовується для приведення типу одного вказівника або посилання до типу іншого вказівника або посилання.

Основне призначення оператора dynamic_cast – це приведення поліморфних типів, тобто приведення вказівників на похідний клас до вказівників на базовий клас.

Як приклад розглянемо наступну ситуацію. Хай тип Base – це базовий клас, а Derived – це клас, похідний (тобто успадковує, включає всі можливості) від класу Base. Тоді наступний код буде виконаний успішно:

Base *bp;

Base bob;

Derived *dp;

Derived dob;

bp = &dob; // вказівник базового класу вказує

// на об'єкт похідного класу

dp = dynamic_cast<Derived *>(bp);

if (!dp)

cout << “Приведення типів пройшло успішно”;

Класи, спадкування класів і поліморфізм детально розглядаються пізніше, в розділі 7 даного навчального посібника.





Дата публикования: 2014-11-03; Прочитано: 521 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...