2012-10-12 63 views
3

由于某些原因,这不起作用。它编译文件,但在使用getter时没有项目被添加到这个向量中。Getter/Setter与std :: vector <>。push_back(...)

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

类中定义的成员函数已经隐式内联,所以不需要使用“inline”关键字(尽管有些人可能有其他理由将其放在那里)。 –

回答

9

返回:

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

没有返回一个副本的符号。

相关问题