我正在尝试在此示例中将播放器添加到工厂。我对指针很新,不知道我做错了什么。
在我的工厂课程中我有:
void Factory::addPlayer(const Player& player)
{
m_player.push_back(player);
}
并且在程序中我试图将其添加为:
Factory* fact = new Factory();
Player* c = new Player(1, 2, 100, "Name");
fact->addPlayer(*c);
然而,当我调试时,'c'实例没有改变。
我没有正确引用吗?如果有人可以帮助或指出正确的方向,我将不胜感激任何帮助。
答案 0 :(得分:0)
会发生的是std::vector
保存值,而不是引用或指针。所以当你这样做时:
m_player.push_back(player);
向量存储自己传递给它的Player
副本。完成后,对矢量元素采取的任何操作都不会影响c
指向的任何内容。