Getters / Setters with std :: vector<> .push_back(...)
问题描述:
由于某些原因,这不工作。它编译文件,但使用getter时,没有任何项目添加到此向量。
For some reason this doesn't work. It compiles file, but no items are added to this vector when using a getter.
EG
class class_name {
public:
inline std::vector<int> get_numbers() { return m_numbers; }
private:
std::vector<int> m_numbers;
}
....
{
class_name number_list;
number_list.get_numbers().push_back(1);
}
如果我直接这样做(m_numbers.push_back(1)但是如果我用getter来拉出它,它不会添加任何东西。
If I do it directly (m_numbers.push_back(1)) it works, but if I pull it out with a getter it won't add anything.
答
修改它:
inline std::vector<int> &get_numbers() { return m_numbers; }
^
没有&符号会返回 。