c++ - 从常量函数返回引用

标签 c++ methods constants

#include "iostream"
#include "vector"

class ABC {

};

class VecTest {

  std::vector<ABC> vec;

  public:

  std::vector<ABC> & getVec() const { //Here it errors out
      return vec;
  }

};

删除 const 修复它,getVec 不是常量方法吗?那么为什么不允许这样做呢?

最佳答案

您可能应该做的是返回一个 const 引用。

const std::vector& getVec() const { 返回 vec;

这是不允许的,因为您说过 getVec 是一个 const 方法,这意味着该方法不应该以任何方式更改 this 对象。返回非常量引用可能会允许其对象被更改,因此编译器不允许这样做。

关于c++ - 从常量函数返回引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/490487/

相关文章:

c++ - 波兰语表达的计算

c++ - g++ 无法链接 libgsl

java - 需要澄清这个java程序的错误

java - 从 Java 方法返回多个变量

java数组名称长度问题

excel - 将 Excel 或 LibreOffice 单元格内容中的数字与文本混合时乘以常数?

java - 在 ant/netbeans 中 init 之前定义常量

c++ - 仍然是我的 Vector 版本

c++ - const 对象未初始化的编译器投诉

c++ - SQLite 中的段错误