失败时,dynamic_cast返回0作为NULL指针.从c ++ 11开始nullptr,为什么不推荐使用已弃用的宏呢?是否有计划合并nullptr或是否有dynamic_cast使用新语法设施的替代方案?如果nullptr使用,它会破坏旧代码吗?
编辑
正如评论中指出的那样(并在答案中得到证实)
返回0作为NULL指针
很多c ++书籍中都有不好的措辞(见评论).请参阅答案/评论,以解释dynamic_cast操作员失败时实际发生的情况
nullptr是一个prvalue类型的文字nullptr_t.在可以dynamic_cast返回空指针值(即而不是抛出std::bad_cast)的情况下,它返回指针类型,而不是类型nullptr_t.由于C++是静态类型语言,因此无法dynamic_cast在运行时更改其返回类型.
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |