C ++:访问类的私有成员

时间:2015-12-11 16:35:14

标签: c++ private

我仍然对C ++有所了解,因为我是新手,但我正在尝试扩展一些现有的代码,我希望能够使用std::vector

以下是在标题中声明的(为简单起见缩写):

class WindowManager
{
     private:
        std::vector<Item*>     m_itemlist;
}

我的问题是我打算如何从.cpp访问它?我想用它来生成一个Item类型的数组,但是我不明白如何实际到达我可以添加新实例化的Item,让我们说{{1} ,到数组?

有点基本的问题,但我对包含std :: vector的教程没有太多运气。

2 个答案:

答案 0 :(得分:4)

如果可能,请避免使用指向Item的向量。直接使用Item的vector。

class WindowManager
{
    void addItem(Item const& item) { m_itemlist.push_back(item); }

private:
    std::vector<Item> m_itemlist;
};

int main()
{
    WindowManager wm;
    Item i;
    wm.addItem(i);
}

答案 1 :(得分:3)

要添加项目,您可以使用以下成员函数:

class WindowManager
{
private:
    std::vector<Item *> m_itemlist;
public:
    void addItem(Item *newItem);
}
window_manager.cpp中的

void WindowManager::addItem(Item *newItem)
{
    m_itemlist.push_back(newItem);
}

请参阅std::vector::push_back()