将对象添加到另一个对象C ++

时间:2013-02-08 19:51:59

标签: c++ aggregation

我试图简单地将一个对象添加到一个类中的另一个对象,例如将播放器添加到工厂。

我的工厂。

class Factory
{
public:

    Factory(void);
    ~Factory(void);
    void addMaze(Maze maze);
    void addPlayer(Player player);
    std::string getSessionTime();
    std::string setSessionTime(std::string time);

    private:

    int m_ID;
    Player m_player;
    Maze m_maze ;
    std::string m_SessionTime;
    std::string m_filePath [50];


    };

然后在我的工厂课程中我有:

void Factory::addPlayer(Player player)
{
    m_player.add(player); //This is what I feel like I want to do
}

所以,我正在尝试将播放器添加到我的播放器列表中,但这不会这样做吗?我错过了一些非常明显的东西吗如果有人可以帮助或指出我正确的方向,我会非常感激。

1 个答案:

答案 0 :(得分:4)

Player m_player;声明类型为Player的数据成员,而不是播放器列表。如果您需要列表,请拥有成员std::list<Player>或更常见的std::vector<Player>

您的功能可能看起来像

void Factory::addPlayer(const Player& player)
{
    m_players.push_back(player);
}