什么是C ++中的Casting运算符?
强制转换是强制将一种数据类型转换为另一种数据的特殊运算符。作为运算符,类型转换是一元的,并且与任何其他一元运算符具有相同的优先级。
大多数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运算符执行非多态转换。例如,它可以用于将基类指针转换为派生类指针。
示例
这些演员阵容非常具体。让我们考虑一个由编译器实现的强制转换示例-
#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 :21Line 2 - Value of (int)b is :10
以上是 什么是C ++中的Casting运算符? 的全部内容, 来源链接: utcz.com/z/316670.html