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

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

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

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

13.05.2013, 16:34. Просмотров 543. Ответов 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++
C++ reinterpret_cast<...>(...)
Reinterpret_cast C++
Оператор reinterpret_cast C++
Как работает reinterpret_cast? C++
C++ Не получается reinterpret_cast<uint64_t>
C++ Преобразование из целого типа в указатель через reinterpret_cast
C++ Reinterpret_cast массива структур
По функции reinterpret_cast C++
C++ Reinterpret_cast и указатели
C++ Reinterpret_cast на машином уровне

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,111
13.05.2013, 16:48     Преобразование (reinterpret_cast) #2
read принимает указатель на char, читается цельный кусок всех данных объекта.
castaway
Эксперт С++
4879 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
13.05.2013, 16:48     Преобразование (reinterpret_cast) #3
Потому что первым параметром infile.read принимает char *, для этого и нужно преобразование.
Ссылка используется для того, чтобы получить указатель на этот объект, и затем преобразовать его в char *
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,243
Записей в блоге: 3
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