Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Оператор 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!