/********************************
老式:
(T)expression
T(expression)
新式:
const_cast<T>(expression); //将对象的常量性转除
dynamic_cast<T>(expression); //安全向下转型, base转drived
reinterpret_cast<T>(expression); //执行低级转型,例如将pointer to int转成int, 在低级代码以外很少见
static_cast<T>(expression); //强迫隐式转换,
*********************************/
尽量使用“使用类型安全容器”和“将virtual函数往继承体系上方移动”做为dynamic_cast的替代方案
请记住
》如果可以尽量避免转型, 特别是在注重效率的代码中避免使用dynamic_cast.
》如果转型是必要的试着将他隐藏在某个函数背后。 客户可以随后调用该函数,而不需要将转型放到他们自己的代码内。
》使用C++风格的新式转型,不要使用C式的旧式转型
老式:
(T)expression
T(expression)
新式:
const_cast<T>(expression); //将对象的常量性转除
dynamic_cast<T>(expression); //安全向下转型, base转drived
reinterpret_cast<T>(expression); //执行低级转型,例如将pointer to int转成int, 在低级代码以外很少见
static_cast<T>(expression); //强迫隐式转换,
*********************************/
尽量使用“使用类型安全容器”和“将virtual函数往继承体系上方移动”做为dynamic_cast的替代方案
请记住
》如果可以尽量避免转型, 特别是在注重效率的代码中避免使用dynamic_cast.
》如果转型是必要的试着将他隐藏在某个函数背后。 客户可以随后调用该函数,而不需要将转型放到他们自己的代码内。
》使用C++风格的新式转型,不要使用C式的旧式转型