0

在此示例中,我正在尝试将 Player 添加到工厂。我对指针相当陌生,不明白我做错了什么。

在我的工厂课上,我有:

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' 实例没有改变。

我没有正确引用吗?如果有人可以提供帮助或指出正确的方向,我将不胜感激。

4

1 回答 1

0

发生的情况是 anstd::vector保存值,而不是引用或指针。所以当你这样做时:

 m_player.push_back(player);

Player向量存储它自己的传递给它的副本。完成此操作后,对向量元素采取的任何操作都不会影响c指向的任何内容。

于 2013-02-09T12:54:35.353 回答