c++ - 我可以退回拷贝作为引用吗?

标签 c++ visual-c++ 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;
}

这是最简单的解决方案,但不是很优雅。

最佳答案

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/

相关文章:

javascript - javascript 中的无限引用是否存在任何问题(示例)

excel - 为什么 Cell.CellReference 是可选的?否则我如何获得手机位置?

c++ - 检查从enable_shared_from_this派生的对象是否由shared_ptr管理?

c++ - 我可以在 STL 中禁用异常吗?

c++ - 标准排序似乎永远循环

visual-studio - 为什么是 Intellisense "Unavailable for C++/CLI"?

c++ - ZeroMQ dealer--to-dealer 与 winsock 相比延迟高

c++ - 传递 char ** 作为引用并返回 const char * 作为引用

c++ - 递增预处理器宏

c++ - 开发基于扇区的分区复制程序?