C++ 转型运算符

C++ 转型运算符

转型是一种特殊的运算符,它强制将一种数据类型转换为另一种。作为运算符,转型是一元的,并且具有与其他一元运算符相同的优先级。

大多数C++编译器支持的最通用的转型如下所示−

(type) expression

其中type是所需的数据类型。C++还支持其他类型转换运算符,下面列出了它们:

  • const_cast <type>(expr) - const_cast运算符用于显式地覆盖转换中的const和/或volatile。目标类型必须与源类型相同,除了其const或volatile属性的修改。这种类型的转换操作会操作传递对象的const属性,可以将其设置或取消设置。

  • dynamic_cast <type>(expr) - dynamic_cast执行一个运行时转换,验证转换的有效性。如果无法进行转换,转换失败并且表达式的值为null。dynamic_cast用于多态类型的转换,只有当所指向的对象实际上是B对象时,它才能将A*指针转换为B*指针。

  • reinterpret_cast <type>(expr) - reinterpret_cast运算符将指针转换为任何其他类型的指针。它还允许指针与整数类型互相转换。

  • static_cast <type>(expr) - static_cast运算符执行非多态转换。例如,它可以用于将基类指针转换为派生类指针。

在处理类和对象时,以上提到的所有类型转换运算符都会被使用。现在,尝试以下示例以了解C++中提供的简单转换运算符。将以下C++程序复制粘贴到test.cpp文件中,然后编译和运行该程序。

#include <iostream>
using namespace std;

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 << "Line 2 - Value of (int)b is  :" << c << endl ;

   return 0;
}

在上述代码被编译和执行时,会产生以下结果 –

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程