标签: c++ dynamic-cast
dynamic_cast如果转换涉及指针,则求值为NULL,但如果转换涉及引用类型,则会抛出bad_cast异常。
dynamic_cast
NULL
bad_cast
为什么会出现这种行为差异?
由于
答案 0 :(得分:4)
因为没有NULL引用这样的东西:)
答案 1 :(得分:3)
实际上可能存在空引用(或者更确切地说是引用null),但它是未定义的行为(UB)。由于标准不定义 UB,因此dynamic_cast抛出异常,这是非常明确的。