失败时返回dynamic_cast的类型

Nik*_*iou 3 c++ c++11

失败时,dynamic_cast返回0作为NULL指针.从c ++ 11开始nullptr,为什么不推荐使用已弃用的宏呢?是否有计划合并nullptr或是否有dynamic_cast使用新语法设施的替代方案?如果nullptr使用,它会破坏旧代码吗?

编辑

正如评论中指出的那样(并在答案中得到证实)

返回0作为NULL指针

很多c ++书籍中都有不好的措辞(见评论).请参阅答案/评论,以解释dynamic_cast操作员失败时实际发生的情况

eca*_*mur 9

nullptr是一个prvalue类型的文字nullptr_t.在可以dynamic_cast返回空指针值(即而不是抛出std::bad_cast)的情况下,它返回指针类型,而不是类型nullptr_t.由于C++是静态类型语言,因此无法dynamic_cast在运行时更改其返回类型.