c++ 中的 (Parent &)child 和 (Parent)child 之间的类型转换有什么不同吗?

Is there any difference typecasting between (Parent&)child and (Parent)child in c++?

我刚刚实现了一个函数,当一个变量被类型化为 (Parent)child 时,我发现有一个错误(类型错误)。但是当它被类型转换为 (Parent&)child 时,错误得到修复。然后我检查了类型转换的变量类型,两者都是相同的类型。有区别还是可能只是因为我的代码?

提前致谢:)

是的,有区别。转换为一个对象会产生一个新的纯右值。转换为引用会产生一个引用基础子对象的左值。

P.S。更喜欢使用 C++ 样式转换 (static_cast) 而不是 C 样式转换。