如何在类列表中获取参考?

How to get a Reference on a list of a class?

本文关键字:获取 参考 列表      更新时间:2023-10-16

我对 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);

我真的不知道如何让它工作...我不知道我做错了什么。

通过引用返回列表,方法是修改签名:

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

在 .hpp 和.cpp文件中

如果无法更改现有签名,则可以实现一个以不同方式调用的新方法,如下所示 在标题中:

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

在 cpp 中

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