Существуют четыре оператора приведения к типу.
Операторы приведения к типу
x=dynamic_cast(p) Пытается привести указатель p к типу D*
(может вернуть 0)
x=dynamic_cast(*p) Пытается привести значение *p к типу D& (может генери
ровать исключение bad_cast)
Окончание таблицы
Операторы приведения к типу
x=static cast(v) Приводит тип операнда v к типу T, если тип T можно при
вести к типу операнда v
x=reinterpret cast(v) Приводит тип операнда v к типу T, представленному той
же самой комбинацией битов
x=const cast(v) Приводит тип операнда v к типу T, удаляя спецификатор
const
x=(T)v Приведение в стиле языка C: выполняет любое старое
приведение
x=T(v) Функциональное приведение: выполняет любое старое
приведение
Динамическое приведение обычно используется для навигации по иерархии классов, если указатель p — указатель на базовый класс, а класс D — производный от базового класса. Если операнд v не относится к типу D*, то эта операция возвращает число 0. Если необходимо, чтобы операция dynamic_cast в случае неудачи не возвращала 0, а генерировала исключение bad_cast, то ее следует применять к ссылкам, а не к указателям. Динамическое приведение — единственное приведение, опирающееся на проверку типов во время выполнения программы.
Статическое приведение используется для “разумных преобразований,” т.е. если операнд v может быть результатом неявного преобразования типа T.
Оператор reinterpret_cast используется для реинтерпретации комбинации битов. Его переносимость не гарантируется. Фактически лучше считать, что он является вообще не переносимым. Типичным примером реинтерпретации является преобразование целого числа в указатель, чтобы получить машинный адрес в программе.
Приведения в стиле языка С и функциональные приведения могут выполнить любое преобразование типа, которое можно осуществить с помощью оператора static_cast или reinterpret_cast в сочетании с оператором const_cast.
Приведений лучше избегать. Во многих ситуациях их использование свидетельствует о плохом стиле программирования. Исключения из этого правила представлены ранее. Приведение в стиле языка С и функциональные приведения имеют ужасное свойство: они позволяют вам не вникать в то, что именно они делают. Если вы не можете избежать явного преобразования типа, лучше используйте именованные приведения.
Опубликовал katy
May 01 2015 12:14:04 ·
3 Комментариев ·
3009 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Oleg27 January 02 2025 09:28:54
Я никогда не считала себя азартным человеком. Когда был шанс броситься в авантюру и с головой погрузиться в приключения, я оставалась в стороне. Часто, от друзей, я слышала приятные отзывы об игровых автоматах. Многие говорили, что эта азартная игра поднимает настроение и дарит яркие впечатления. На приглашения посетить местное казино, я давала твёрдый отказ. Однако меня глубоко интересовал вопрос, действительно ли эти игровые автоматы являются таковыми, как о них говорят. Благодаря интернету для того, чтобы посетить казино 1хБЕТ зеркало И я решила этим воспользоваться.
Oleg27 January 02 2025 10:24:41
Приветствую коллеги. А у меня такой вопрос: на ставках реально подняться, или это всё развод? Вот зашёл я на такой сайт, выбираю какому каперу можно доверять в 1хБЕТ вход телеграмме . Вроде всё просто тут, и одновременно сложно, по крайней мере, для меня. С чего мне начать и как действительно зарабатывать в такой способ?
Oleg27 January 02 2025 10:26:47
По поводу победы в ЛЧ , думаю в этом году снова Ливерпуль либо ПСЖ )) еще есть вариант с Реалом - увидим вообщем. Еще хотел бы всех любителей предупредить, что ни в коем случае не покупайте прогнозы этого мошенника 1хБЕТ сайт — Виталия Зимина, развел недавно меня на деньги и перестал отвечать
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.