C++ 中 (Parent&)child 和 (Parent)child 之间的类型转换有什么区别吗?

1 c++ types casting

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

提前致谢 :)

eer*_*ika 5

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

PS 更喜欢使用 C++ 风格的强制转换 ( static_cast) 而不是 C 风格的强制转换。

  • 我怀疑这实际上会对OP有帮助,但它是对他们提出的问题的准确答案;) (3认同)