返回向量元素的引用获得对非const的引用的初始值必须为左值

时间:2019-07-17 10:07:05

标签: c++ vector

我想返回对矢量数据成员元素的引用,以便以后可以通过将函数用作l值来修改该元素。

我试图从向量数据成员的元素的成员函数返回引用,以便以后可以像下标运算符重载函数一样对其进行修改。

我对此进行了一些研究,所以我知道我无法返回常量向量的非常量引用。但是在这里,我的函数不是常数,引用也不是,但是我仍然得到这个Error:"initial value of reference to non-const must be an l-value"

我正在使用VS 2019。


#include <vector>

class A{
private:
    std::vector<bool> element;
public:
    A():element(100,false){}

    bool& set (int n){return element[n];} // I get the Error

    //const bool& set (int n){return element[n];} // this works fine but not modifiable 

    void set(int n){
        f(n)=true; // i want to do this
    }
};

错误:

  

“对非const的引用的初始值必须为l值”

0 个答案:

没有答案