static_cast最像C风格的强制转换,很多时候都需要程序员自身去判断转换是否安全。但是相对C风格的强制转换,在无关类的类指针之间转换上,有安全性的提升。

dynamic_cast是运行时的转换吧,要求new_type为指针或引用,其二是下行转换时要求基类是多态的(基类中包含至少一个虚函数)。dynamic_cast可以识别出不安全的下行转换,但并不抛出异常,而是将转换的结果设置成null。这个dynamic也有很多问题。需要运行时确定类型信息, 说明设计有缺陷?https://www.zhihu.com/question/22445339

reinterpret_cast这个转换是最“不安全”的,两个没有任何关系的类指针之间转换都可以用这个转换实现。但是需要new_type是指针或者引用。

const_cast代表常量和非常量之间的转换。

 

相关文章:

  • 2021-10-19
  • 2021-11-29
  • 2021-10-29
  • 2021-08-09
  • 2022-03-01
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
猜你喜欢
  • 2021-07-16
  • 2022-02-19
  • 2021-07-18
  • 2021-07-16
相关资源
相似解决方案