出于某种原因,这不起作用。它编译文件,但在使用getter时没有任何项添加到此向量。
E.G。
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))它可以工作,但是如果我用吸气剂将它拉出来它就不会添加任何东西。
答案 0 :(得分:9)
如果您打算修改它,请按引用返回向量:
inline std::vector<int> &get_numbers() { return m_numbers; }
^
如果没有&符号,则会返回副本。