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

C++: accessing private members of the class

由于我是 C++ 的新手,我仍然在关注 C++,但我正在尝试扩展一些现有的代码,这些代码期望我使用 std::vector.

在 header 中声明如下(为简单起见缩写):

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

我的问题是我应该如何从 .cpp 访问它?我想用它来获得一个 Item 类型的数组,但我不明白如何真正达到可以添加新实例化的 Item 的程度,假设 button, 到数组?

有点基本的问题,但我对涵盖 std::vector.

的教程不太满意

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

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()

如果可能,请避免使用指向 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);
}