Преобразования типов: в стиле Си, статические, константные, произвольные.
Синтаксис приведения типов данных согласно Си-стилю: (type) val , где type — тип данных к которому преобразуется значение val. Cи-стиль приведения типов данных может быть использован для преобразования любого типа в любой другой тип.
Статические преобразования типов: типы, к которым применим static_cast :
- числовые
- типы, связанные наследованием
- пользовательские преобразования
- к void
Рекомендуется пользоваться операцией static_cast, нежели Cи-стилем приведения, потому что он ограничивает недопустимое приведение типов и, следовательно, безопаснее. Общий вид статического преобразования типа: static_cast< type >(value);
Константные преобразования типов: операция const_cast доступна только в C++. Константное приведение используются, чтобы константную переменную преобразовать в неконстантную. При этом, константным становится возвращаемое значение операции const_cast, а не сама переменная. Пример: const_cast< type >(val);
Произвольные преобразования типов: операция reinterpret_cast доступна только в C++ и является наименее безопасной формой приведения типов данных в С++, она позволяет интерпретировать значение в другой тип данных. reinterpret_cast не должна быть использована для приведения иерархии классов или преобразования константных переменных. reinterpret_cast< dataType >( value ); Рассмотрим пример использования этой операции приведения, например, чтобы преобразовать целое значение в указатель, нужно написать следующее: reinterpret_cast < int* >(777);