Nic*_*yer 35
使用dynamic_cast从基类转换为派生类类型时.它检查正在转换的对象实际上是派生类类型,如果对象不是所需类型,则返回空指针(除非您正在转换为引用类型 - 然后它会抛出bad_cast异常).
static_cast如果不需要额外检查,请使用.正如Arkaitz所说,自从dynamic_cast执行额外检查以来,它需要RTTI信息,因此具有更大的运行时开销,而static_cast在编译时执行.
在某些情况下,与此类似,"静态"是指编译时,"动态"是指运行时.
对于编译时检查,请使用static_cast(限于编译器知道的内容).对于运行时检查,请使用dynamic_cast(仅限于带有RTTI的类).如果不进行检查,请使用reinterpret_cast.
| 归档时间: |
|
| 查看次数: |
37002 次 |
| 最近记录: |