#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/