强制转换运算符是一种特殊的运算符,它把一种数据类型转换为另一种数据类型。强制转换运算符是一元运算符,它的优先级与其他一元运算符相同。
大多数的 C++ 编译器都支持大部分通用的强制转换运算符:
(type) expression
其中,type 是转换后的数据类型。下面列出了 C++ 支持的其他几种强制转换运算符:
上述所有的强制转换运算符在使用类和对象时会用到。现在,请看下面的实例,理解 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 << "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
____________________________________________________________________________________________=====================================================================================================================================
下面具体介绍一下四种转换方法:
=注意:static-cast<>不能转换掉数据的const.,valitble等特性.=
下面例子:
#include<iostream>
using namespace std;
int main()
{
int num=100;
const int*p1=#//定义一个p指针
int* p2=const_cast<int*>(p1);//将常数指针p1去掉const属性
*p2=200;
cout << "num=" <<num<< endl;
return 0;
}
输出num=200