我可以返回副本作为参考吗?
Can I return copy as a reference?
我有一个返回对对象的常量引用的虚拟方法。在其中一个派生类中,我需要返回一个值。使用 const 引用返回类型时是否可以返回副本?
这是我正在尝试做的事情(简化代码,因为它更复杂(:
const Object& method(){
Object object;
//...
return object; //Wrong, returning reference to local variable.
}
我尝试以这种方式使用静态值:
const Object& method(){
static Object object;
object = Object();
//...
return object;
}
这是最简单的解决方案,但不是很优雅。
我有一个返回对对象的常量引用的虚拟方法。在其中一个派生类中,我需要返回一个值。
解决方案:更改设计,以便
- 返回类型不是引用或
- 派生类不需要返回值。
否则,派生类不符合它继承的接口。
我可以返回副本作为参考吗?
可以返回对作为另一个对象副本的对象的引用。但是您需要将对象(您返回其引用(存储在某个地方。
相关文章:
- 赋值运算符的返回值可以作为参考吗?
- C 标准:通过复制返回以初始化无RVO的参考:是否有任何副本
- JNI返回Java对象,可以返回本地参考,还是必须是全局
- 是否可以通过引用通过参数返回参考
- 返回int数据类型v/s传递参考
- 通过C 中的参考返回结果
- 在C 中返回参考有效期参考是否有效
- 通过参考返回C 中的对象
- 为什么const rvalue合格的std ::可选:: value()返回const rvalue参考
- C 通过参考返回本地对象
- C 按值返回与参考返回
- 为什么未调用具有常量参考返回值的超载方法
- 如何检查正确操作数以通过参考返回功能
- 移动后通过rvalue参考返回
- 在C 中参考返回的参数中积累事物是一种气味吗?
- 我应该始终处理参考返回矢量吗?
- 通过参考返回和const函数返回const值的函数之间的差异
- C 常数参考返回算法=作为非函数的声明
- 为什么我们在分配运算符过载中使用参考返回,而不是在加上Minus OPS中使用
- C 参考和类对象的非参考返回 - 为什么输出相同