C++程序设计语言之几种通用的强制转换运算符

C++程序设计语言之强制转换运算符是一种特殊的运算符,它把一种数据类型转换为另一种数据类型。强制转换运算符是一元运算符,它的优先级与其他一元运算符相同。大多数的C++编译器都支持大部分通用的强制转换运算符:

(type)expression: type是转换后的数据类型。

const_cast(expr): const_cast运算符用于修改类型的const/volatile属性。除了const或volatile属性之外,目标类型必须与源类型相同。这种类型的转换主要是用来操作所传对象的const属性,可以加上const属性,也可以去掉const属性。

dynamic_cast(expr): dynamic_cast在运行时执行转换,验证转换的有效性。如果转换未执行,则转换失败,表达式expr被判定为null。dynamic_cast执行动态转换时,type必须是类的指针、类的引用或者void*,如果type是类指针类型,那么expr也必须是一个指针,如果type是一个引用,那么expr也必须是一个引用。

reinterpret_cast(expr): reinterpret_cast运算符把某种指针改为其他类型的指针。它可以把一个指针转换为一个整数,也可以把一个整数转换为一个指针。

static_cast(expr): static_cast运算符执行非动态转换,没有运行时类检查来保证转换的安全性。例如,它可以用来把一个基类指针转换为派生类指针。

Leave a Reply

Your email address will not be published. Required fields are marked *