繁体   English   中英

getter / setters with std :: vector <>。push_back(...)

[英]Getters/Setters with std::vector<>.push_back(…)

出于某种原因,这不起作用。 它编译文件,但在使用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))它可以工作,但如果我用一个getter把它拉出来它就不会添加任何东西。

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

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

如果没有&符号,则返回副本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM