2013-02-08 4 views
0

클래스에있는 다른 개체에 단순히 개체를 추가하려고합니다 (예 : 플레이어를 팩토리에 추가). 그래서, 플레이어의 내 목록에 플레이어를 추가하기 위해 노력하고있어다른 개체에 개체 추가 C++

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

,하지만 내 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]; 


    }; 

등을 위해

다음 내 공장 클래스에 내가 가진 하지 않을거야? 나는 정말 분명한 것을 놓치고 있는가? 누군가가 올바른 방향으로 나를 도울 수 있다면 정말 감사 할 것입니다.

+0

클래스'Factory'의 멤버 변수로''표준 : : 벡터 사용을 고려처럼

귀하의 기능을 볼 수 있었다. – sgarizvi

+0

그것은 당신이 달성하려고 노력하고있는 것에 따라, 당신의 공장은 선수 명단이 있어야합니까? – Eric

+0

당신은 값으로 전달하고 있으므로, (이동 의미가 없다고 가정하면)'Factory'의'player' 인스턴스는'addPlayer'가 호출 된 인스턴스와 같지 않을 것입니다. 그것은 사본입니다. –

답변

4

Player m_player;은 플레이어 목록이 아닌 Player 데이터 멤버를 선언합니다. 목록을 원하면 std::list<Player> 또는 더 일반적인 std::vector<Player> 회원을 보유하십시오.

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