ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 12) онлайн

Оператор reinterpret_cast

Программа BINIO (как и многие последующие) использует оператор reinterpret_

cast для того, чтобы буфер данных типа int выглядел для функций read() и write()

как буфер типа char.

  is.read( reinterpret_cast<char*>(buff), MAX*sizeof(int) );

reinterpret_cast KaK бы говорит компилятору: «Я знаю, что тебе это не понравится,

и все-таки я это сделаю». Он изменяет тип данных в определенной области па-

мяти, совершенно не задумываясь о том, имеет это смысл или нет. Поэтому во-

прос целесообразности использования этого оператора остается целиком на со-

вести программиста.

Можно использовать reinterpret_cast для превращения указателей в данные

типа int и обратно. Это небезопасное занятие, но порой оно необходимо.

 

23