标签:nbsp 目标 foo 共享 const UNC 服务 常量 ike
用来去掉const或volatile属性
volatile:
一般用来将常量指针变为非常亮指针, 常量引用变为非常量引用, 常量对象变为非常量对象
强制类型转换:(不含类型转换的安全检查)
子类指针转换为父类指针,父类指针可以转换为子类指针(但是不安全)
用于:
仅仅重新解释类型,但没有进行二进制的转换:
1. 转换的类型必须是一个指针、引用、算术类型、函数指针或者成员指针。
2. 在比特位级别上进行转换。它可以把一个指针转换成一个整数,也可以把
一个整数转换成一个指针(先把一个指针转换成一个整数,再把该整数转换成
原类型的指针,还可以得到原先的指针值)。但不能将非32bit的实例转成指
针。
3. 最普通的用途就是在函数指针类型之间进行转换。
4. 很难保证移植性。
例子:
用于以二进制形式重新解释类型,但是没有进行二进制的类型转换
有条件转换,动态类型转换,运行时类型安全检查(转换失败返回
NULL):
1. 安全的父类和子类之间转换。
2. 必须要有虚函数。
3. 相同父类不同子类之间的交叉转换。但结果是NULL。
例子:
class BaseClass { public: int m_iNum; virtual void foo(){}; };
基类必须有虚函数。保持多态特性才能使用dynamic_cast
总结
?去const属性用const_cast。
?基本类型转换用static_cast。
?多态类之间的类型转换用dynamic_cast。
?不同类型的指针类型转换用reinterpret_cast
标签:nbsp 目标 foo 共享 const UNC 服务 常量 ike
原文地址:https://www.cnblogs.com/fanhua666/p/11555757.html