3

由于某种原因,这不起作用。它编译文件,但在使用 getter 时不会将任何项目添加到此向量中。

例如

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)) 它可以工作,但如果我用吸气剂将它拉出来它不会添加任何东西。

4

1 回答 1

9

如果您打算修改它,请通过引用返回向量:

inline std::vector<int> &get_numbers() { return m_numbers; }  
                        ^

如果没有 & 号,则返回一个副本。

于 2012-10-12T02:48:59.833 回答