xxx_cast类型转换的实现方法
时间:2021-02-04 11:37:34|栏目:C代码|点击: 次
xxx_cast是一个统称,它指的是static_cast(静态转换),const_cast(常量转换),reinterpert_cast(重解释转换),dynamic_cast(动态转换)。本次我们就了解一下他的用途及其转换方式。
1.static_cast(静态转换)
静态转换全部用于明确定义达到转换,包括编译器允许我们所做的不用强制转换的安全变换和不太安全的但清楚定义的变换。
2.const_cast(常量转换)
如果从const转换为非const或从volatile转换为非volatile,就可以直接使用const_cast,也是唯一允许的转换做法。
3.reinterpert_cast(重解释转换)
这是最不安全的一种转换机制,最有可能出现问题,reinterpret_cast把对象假想为模式,是一个完全不同类型的对象,在使用reinterpret_cast做任何事之前,实际上总是需要reinterpret_cast转换回原来的类型。C++中的reinterpret_cast主要是将数据从一种类型准换位另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。
4.dynamic_cast(动态转换)
针对继承体系中,主要用于类型安全的向下转换。