我仍然对C ++有所了解,因为我是新手,但我正在尝试扩展一些现有的代码,我希望能够使用std::vector
。
以下是在标题中声明的(为简单起见缩写):
class WindowManager
{
private:
std::vector<Item*> m_itemlist;
}
我的问题是我打算如何从.cpp访问它?我想用它来生成一个Item
类型的数组,但是我不明白如何实际到达我可以添加新实例化的Item
,让我们说{{1} ,到数组?
有点基本的问题,但我对包含std :: vector的教程没有太多运气。
答案 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);
}