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

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

Войти
Регистрация
Восстановить пароль
 
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113
#1

Преобразование (reinterpret_cast) - C++

13.05.2013, 16:34. Просмотров 551. Ответов 3
Метки нет (Все метки)

C++
1
2
ifstream infile("person.dat", ios::binary);
infile.read(reinterpret_cast<char*>(&pers),sizeof(pers));
pers - объект класса.

Возможно глупо, но все же, интересно как в данном случае работает преобразование. Почему здесь присутствует ссылка объекта, а не сам объект?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2013, 16:34     Преобразование (reinterpret_cast)
Посмотрите здесь:

Преобразование из целого типа в указатель через reinterpret_cast - C++
Только учусь работать на языке с++, поэтому еще очень много чего не понимаю. Я написала программу с динамическими структурами данных...

Reinterpret_cast - C++
Не могу понять к чему тут этот каст и каким образом он влияет на результат. char zxc = ((*(reinterpret_cast&lt;const char*&gt;(&amp;(todo ==...

reinterpret_cast<...>(...) - C++
Всем привет! Сразу к делу. ВОПРОС: Как преобразовать переменную типа float в указатель типа double; КРАТКОЕ ОПИСАНИЕ...

reinterpret_cast - C++
Подскажите плиз, чем отличается функция reinterpret_cast от static_cast? небольшой пример: const int MAX = 100; // размер буфера ...

Оператор reinterpret_cast - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int x3 = -0x00260305; cout &lt;&lt;hex &lt;&lt;...

По функции reinterpret_cast - C++
Доброго времени суток, коллеги! Навоял вот такой код: #include&lt;iostream&gt; using namespace std; int main() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,121
13.05.2013, 16:48     Преобразование (reinterpret_cast) #2
read принимает указатель на char, читается цельный кусок всех данных объекта.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
13.05.2013, 16:48     Преобразование (reinterpret_cast) #3
Потому что первым параметром infile.read принимает char *, для этого и нужно преобразование.
Ссылка используется для того, чтобы получить указатель на этот объект, и затем преобразовать его в char *
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 17:17     Преобразование (reinterpret_cast)
Еще ссылки по теме:

Reinterpret_cast и указатели - C++
Добрый вечер. Есть вот такая конструкция: *reinterpret_cast&lt;Offsets::UnitGender*&gt;(pPlayerFields + Offsets::Unit::Gender) =...

Reinterpret_cast <MyType> (void*) - C++
Нужно преобразовать тип (void*) к некоторому пользовательскому типу. Преобразование reinterpet_cast &lt;MyType*&gt; (void *) работает, а...

Не получается reinterpret_cast<uint64_t> - C++
double x; uint64_t u; TDoubleMantissFormatMarker f; x=1.23456e+2; u=reinterpret_cast&lt;uint64_t&gt;(x); на 5-ю строку пишет: .

Как работает reinterpret_cast? - C++
не пойму как работает reinterpret_cast? вот если мне надо например данные привести в бинар для сохранения в файл, я пишу: int value =...

Reinterpret_cast на машином уровне - C++
Привет, кто может обяснить как работает reinterpret_cast на машинном уровне?

Reinterpret_cast массива структур - C++
Добрый день. Есть такая строка: const TypeFoParametr&amp; a = *reinterpret_cast&lt;const TypeFoParametr*&gt;(data); 1) Скажите пожалуйста, если...


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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,494
Записей в блоге: 4
13.05.2013, 17:17     Преобразование (reinterpret_cast) #4
IvanInanovich, проще говоря, это не ссылка. Ссылка это знак & в объявлении. В этом случае это операция взятия адреса. Например:
C++
1
2
char sumb = 'a';
char *Ptr_ToSumb = &sumb;
Yandex
Объявления
13.05.2013, 17:17     Преобразование (reinterpret_cast)
Ответ Создать тему
Опции темы

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