我正在阅读《C++之旅》一书,但无法理解以下段落。什么是“不接受不同类型”?那么,何时使用指针转换,何时使用引用转换?有人能详细说明一下吗?谢谢。
编辑: 另一个问题,“使用动态转换时,使用引用和指针的行为差异”是在问动态转换的行为,我可以理解-返回nullptr或抛出异常。在这个问题中,我想问什么时候使用其中一个,什么时候使用另一个。
引用自《C++之旅》,第4.5.3节:“当指向不同派生类对象的指针是有效参数时,我们使用dynamic_cast到指针类型。然后我们测试结果是否为nullptr。这个测试通常方便地放在变量初始化的条件中。当不接受不同类型时,我们可以直接将dynamic_cast转换为引用类型。如果对象不是预期类型,则会抛出bad_cast:”
编辑: 另一个问题,“使用动态转换时,使用引用和指针的行为差异”是在问动态转换的行为,我可以理解-返回nullptr或抛出异常。在这个问题中,我想问什么时候使用其中一个,什么时候使用另一个。
引用自《C++之旅》,第4.5.3节:“当指向不同派生类对象的指针是有效参数时,我们使用dynamic_cast到指针类型。然后我们测试结果是否为nullptr。这个测试通常方便地放在变量初始化的条件中。当不接受不同类型时,我们可以直接将dynamic_cast转换为引用类型。如果对象不是预期类型,则会抛出bad_cast:”