2012-10-12 61 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; } 
         ^

沒有返回一個副本的符號。

相關問題