2013-02-08 78 views
0

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

对于我factory.h

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 
} 

所以,我想给玩家添加到我的球员名单,但是这不会这样做?我错过了真正明显的东西吗?如果任何人都可以帮助或指引我正确的方向,我会非常感激。

+0

考虑使用'的std ::矢量'作为类'Factory'的成员变量。 – sgarizvi 2013-02-08 19:54:58

+0

这取决于你想达到的目标,你的工厂是否应该有一个玩家名单? – Eric 2013-02-08 19:55:34

+0

Fyi你正在传值,所以(假设没有移动语义)'Factory'中的'player'实例与addPlayer'被调用的实例不一样。这是一个副本。 – 2013-02-08 20:02:28

回答

4

Player m_player;声明类型为Player的数据成员,而不是玩家列表。如果你想要一个清单,请有一个成员std::list<Player>或更常见的std::vector<Player>

你的函数可能看起来像

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