尽管dynamic_cast
如果正在处理的指针属于不兼容类型,0
会返回dynamic_cast
,为什么要避免使用{{1}}?
答案 0 :(得分:6)
它需要非零运行时间。就是这样。 C-cast及其c ++计数器部分如:reinterpret
或static
是0开销,因为它们是在编译期间执行的。
对某些人来说,重要的部分可能是他们确实需要RTTI
,这也会引入一些开销,例如代码大小,因为编译器必须将类型信息包含到二进制中,这通常不会完成。应该注意,这可能是编译器中的非标准选项。
来自wiki的相关说明:" 在最初的C ++设计中,Bjarne Stroustrup没有包含运行时类型信息,因为他认为这种机制经常被滥用。"
编辑:继续引用和评论。我不确定这是否真的是一个缺点,我想指出,当你使用它时,你应该想想你是否确实需要它。
有些人不喜欢它,有些人会误用它。
答案 1 :(得分:2)