关于C++ 的类型转换失败

C++中的基础(内置)数据类型的转型没有失败的,顶多就是精度损失;至于自定义类型的转型,最好使用新式的转型风格,即

const_cast<T>(expression)               //const与非const之间的转型

dynamic_cast<T>(expression)          //多态转换

reinterpret_cast<T>(expression)       //强制转换

static_cast<T>(expression)               //隐式转换

最好不要用旧风格的(T)(expression)

要说明的是:

一、之所以新风格写的转型如此麻烦,就是让人尽量少做转型操作;

二、多态转型的时候,有时提示失败,比如一个子类对象指针转换为父类对象指针(这个是多态的基础,肯定是可以的)提示失败,其实有可能是子对象的定义缺失,注意此时报错报的是转型失败;

 

posted @ 2021-03-09 11:44  阿室安~  阅读(558)  评论(0)    收藏  举报