Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
#1

Зачем reinterpret_cast<>(), если есть static_cast<>() ? - C++

20.05.2014, 22:55. Просмотров 426. Ответов 1
Метки нет (Все метки)

эти операторы были добавлены в С++ лишь для наглядности по сравнению с C-style casting?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 22:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зачем reinterpret_cast<>(), если есть static_cast<>() ? (C++):

Зачем нужны обычные массивы, если есть динамические? - C++
Всем привет! Вопрос в заголовке. Если динамический массив даёт те же и ещё больше функций и, при том, лучше обращается с памятью, зачем...

Зачем нужен тип private, если есть protected? - C++
зачем нужен тип private если есть protected??? одного не достаточно? ведь свойства те же. и даже лучше...

Зачем нужны rvalue ссылки, если есть универсальные ссылки - C++
Читаю книгу Скотта Мэйерса... Что-то я совсем запутался с этими rvalue ссылками. Я не пойму, зачем нужны rvalue ссылки, если есть...

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? - C++
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Зачем учить указатели, если можно использовать вектор? - C++
Не могу понять, зачем учить указатели если в большинстве случаев для выделения памяти намного легче использовать vector?

Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму - C++
Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15551 / 7059 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
20.05.2014, 23:23 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Приведения в C++ работают по более строгим правилам, чем приведения в стиле С.
Например, в C я легко могу привести указатель к какому-нибудь char-у или наоборот, и
компилятор даже не пикнет. Со static_cast такой номер не пройдет, и даже
reinterpret_cast не позволит это сделать, если размер output-типа слишком мал.

В общем, приведения в C++ можно рассматривать, как более тонкий и безопасный
инструмент для работы с типами:

static_cast - для приведений совместимых типов, например "unsigned char" в "int".
dynamic_cast - для динамического определения типа в полиморфных классах.
const_cast - аккуратное снятие признака константности (именно признака, а не
самой константности).
reinterpret_cast - обработка специальных случаев типа привести <void *> к <size_t>.
C-style - последняя мера, когда ничего уже не помогает.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2014, 23:23
Привет! Вот еще темы с ответами:

Обработка символьных данных. Yes, если есть символ в строке и NO если его нет - C++
Здравствуйте! Помогите решить задачу: Если в данный текст входит любая из букв слова key, напечатать да, если не входит то нет. #include...

Зачем нужен iterator, если можно обойтись без него? - C++
Почему нужен итератор(iterator) если этот код #include &lt;iostream&gt; #include &lt;vector&gt; #include&lt;iterator&gt; using namespace std; ...

Зачем учить язык в консоли, если пришло время окон? - C++
Добрый вечер! Я когда начинал изучать этот язык искал литру и остановился на Р.Лафоре ООП. Ну прочитал мало но понял. Но после этого...

Есть ли смысл помечать функции как inline, если их прототип уже есть в .h файле? - C++
Есть ли смысл помечать функции как inline, если их прототип уже есть в .h файле? Функции в одну строчку, сразу в ретарне вычисляет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru