如何在课程列表中获取参考?

时间:2020-05-16 08:37:19

标签: c++

我刚接触c ++并遇到问题。

S这是在myClass类的.h内部给出的:

std::vector<uint64_t> getList() const;

现在我在MyClass(.h​​文件)中做到了:

private: std::vector<uint64_t> list;

这在我的.cpp文件中:

std::vector<uint64_t> MyClass::getList() const{
    return list;
}

但是现在,如果我想在列表上推送一个值,我只会得到列表的一个副本并继续推送。

auto list = getList();
list.push_back(1);

有人给了我一些参考提示,并尝试了以下方法:

auto& listRef = getList();
listRef.push_back(1);

我真的不知道如何使它工作...我不知道自己在做什么错。

1 个答案:

答案 0 :(得分:1)

通过以下方式修改签名来通过引用返回列表:

std::vector<uint64_t>& MyClass::getList();

在.hpp和.cpp文件中

如果您不能更改现有签名,则可以实现一个新方法,称为 在标题中:

std::vector<uint64_t>& accessList();

在cpp中

std::vector<uint64_t>& MyClass::accessList()
{
     return list;
}