深入学习C++关键字: 四种类型转换

76 阅读1分钟
关键字:
    const_cast    //取消const的限制
    
示例:
const int i = 3;
int* p = const_cast<int*>(&i);
*p = 4;
关键字:
    dynamic_cast    //用于类继承层次间的指针或引用转换
                    //把一个指向子类对象的父类指针转为子类指针
                    //把一个指向子类对象的父类引用转为子类引用
                    //指针转换失败会返回nullptr
                    //引用转换失败会抛出异常
                    //因为有安全检查,所以时安全的。不过类型检查需要运行时类型信息
                    //这个信息位于虚函数表中,所以必须有虚函数
                    
性能不高,但是安全
关键字:
    static_cast      //基本的类型转换(不能对毫无关联的数据进行转换)
关键字:
    reinterpret_cast //非关联类型的转换,二进制层面的拷贝
                     //不会改变二进制层面的数据
                     //只是改变它的读取方式
                     //没有类型检查