C++ Оператор приведения

Операторы C++

Операторы приведения типов — это специальные операторы, которые преобразуют один тип данных в другой. Операторы приведения типов являются унарными операторами, и их приоритет такой же, как у других унарных операторов.

Большинство компиляторов C++ поддерживают большинство распространённых операторов приведения типов:

(type) expression 

Здесь type — это тип данных после преобразования. Ниже перечислены несколько других операторов приведения типов, поддерживаемых C++:

  • const_cast<type> (expr):Оператор const_cast используется для изменения атрибутов const/volatile типа. За исключением атрибутов const или volatile, целевой тип должен быть таким же, как исходный тип. Этот вид приведения в основном используется для управления атрибутом const переданного объекта; он может добавлять атрибут const или удалять атрибут const.

  • dynamic_cast<type> (expr):dynamic_cast выполняет преобразование во время выполнения и проверяет допустимость преобразования. Если преобразование не выполняется, преобразование завершается неудачно, и выражение expr вычисляется как null. Когда dynamic_cast выполняет динамическое преобразование, type должен быть указателем на класс, ссылкой на класс или void*. Если type — это тип указателя на класс, то expr также должен быть указателем; если type — это ссылка, то expr также должен быть ссылкой.

  • reinterpret_cast<type> (expr):Оператор reinterpret_cast изменяет указатель одного типа на указатель другого типа. Он может преобразовывать указатель в целое число или целое число в указатель.

  • static_cast<type> (expr):Оператор static_cast выполняет нединамические преобразования, без проверок классов во время выполнения, обеспечивающих безопасность преобразования. Например, его можно использовать для преобразования указателя на базовый класс в указатель на производный класс.

Все упомянутые выше операторы приведения типов используются с классами и объектами. Теперь рассмотрите следующий пример, чтобы понять, как использовать простой оператор приведения типов в C++. Скопируйте и вставьте следующую программу на C++ в файл test.cpp, затем скомпилируйте и запустите программу.

Пример

#include <iostream>
using namespace std;
 
int main()
{
   double a = 21.09399;
   float b = 10.20;
   int c ;
 
   c = (int) a;
   cout << "Line 1 - Value of (int)a is :" << c << endl ;
   
   c = (int) b;
   cout << "Строка 2 - Значение (int)b равно :" << c << endl ;
   
   return 0;
}

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

Line 1 - Value of (int)a is :21
Line 2 - Value of (int)b is  :10

Операторы C++

Другие расширения