【27】尽量少做转型动作

1、C++是强类型语言,保证类型错误不会发生,转型会破坏类型系统。C语言提供了强制转型语法T(expn),或者T(expn),C++提供了新式转型。

  const_cast<T>(expn)

  static_cast<T>(expn)

  dynamic_cast<T>(expn)

  reinterpret_cast<T>(expn)

  强烈建议使用新式转型,因为:一是在代码中容易识别出来,二是各转型动作的目标窄化,编译器容易诊断出错误,可以简单认为,细化分工比原来的万能方式好。

2、尽量避免转型,为什么?转型往往会影响效率,转型后出现临时对象,而应该使用无需转型的替代方法,比如virtual。

原文地址:https://www.cnblogs.com/nzbbody/p/3514251.html