这两种getter方法有什么区别?

时间:2017-12-02 19:30:12

标签: c++

我理解第一个getter方法是什么,但是我无法看到第二个方法究竟做了什么。

class myItems{

public:
  typedef std::vector<Items> items_t;

private:
  items_t items;

public:

  //1: items_t getItems(void) const { return items; }
  //2: const items_t & getItems(void) const { return items; }

};

任何解释或任何文档的链接都会有所帮助,谢谢。

编辑:

给出这个循环:

 for (myItems::classes_t::const_iterator it = myItemsInstance.getItems().begin(); it != myItemsInstance.getItems().end(); it++)
 {
    //....
 }

我不明白为什么它使用第一个吸气剂无限循环,而它没有使用第二个吸气剂。

1 个答案:

答案 0 :(得分:0)

第一个函数返回可以自由操作或编辑的成员变量项的副本,而第二个函数将返回对无法操作的items变量的常量引用。第一个const规定不能操纵返回的值,第二个规定函数不能编辑myItems类的成员变量。