C++中的4种运算符转化以及它们的不同点

来源:互联网 发布:淘宝的安逸猿 编辑:程序博客网 时间:2024/06/03 15:45

4种运算符如下:

(1)const_cast 操作符:用来帮助调用那些应该使用却没有使用const关键字的函数。换句话说,就是供程序设计师在特殊情况下将限制为const成员函数的const定义解除,使其能更改特定属性。

(2)dynamic_cast 操作符:如果启动了支持运行时间类型信息(RTTI),dynamic_cast 可以有助于判断在运行时所指向对象的确切类型。它与typeid运算符有关。可以将一个基类的指针指向许多不同的子类型(派生类),然后将被转型为基础类的对象还原成原来的类。不过,限于对象指针的类型转换,而非对象变量。

(3)reinterpret_cast 操作符:将一个指针转换成其他类型的指针,新类型的指针与旧指针可以毫不相关。通常用于某些非标准的指针数据类型转换,例如将void *转换为 char*。它也可以用在指针和整型数之间的类型转换上。注意:它存在潜在的危险,除非有使用它的充分理由,否则就不要使用它。例如,它能够将一个int*类型的指针转换为float*类型的指针,但是这样就会很容易造成整数数据不能被正确的读取。

(4)static_cast 操作符:它能在相关的对象和指针类型之间进行类型转换。有关的类之间必须通过继承、构造函数或者转换函数发生联系。static_cast操作符还能在数字(原始的)类型之间进行类型转换。通常情况下,static_cast操作符大多用于将数域宽度较大的类型转换为较小的类型。当转换的类型是原始数据类型时,这种操作可以有效地禁止编译器发出警告。

原创粉丝点击