我有一个虚方法,它返回对象的常量引用。在派生类之一中,我需要返回一个值。使用 const 引用返回类型时是否可以返回拷贝?
这是我正在尝试做的事情(简化代码,因为它更复杂):
const Object& method(){
Object object;
//...
return object; //Wrong, returning reference to local variable.
}
我尝试以这种方式使用静态值:
const Object& method(){
static Object object;
object = Object();
//...
return object;
}
这是最简单的解决方案,但不是很优雅。
最佳答案
I have a virtual method that returns a const reference to object. In one of derived classes I need to return a value.
解决方案:改变你的设计,这样
- 返回类型不是引用或
- 派生类不需要返回值。
否则派生类不符合它继承的接口(interface)。
Can I return copy as a reference?
您可以返回对作为另一个对象拷贝的对象的引用。但是您需要将对象(您返回其引用)存储在某处。
关于c++ - 我可以退回拷贝作为引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442013/