2011-05-17 3 views
0

J'essaie de faire quelque chose de simple et de stocker un objet dans un tableau en C++ mais il ne cesse de dire que je ne peux pas utiliser l'opérateur = avec l'opérande de droite appartenant à ma classe. Voici le code:ne peut pas stocker un objet dans le tableau? C++

class Player { 
    string name; 
    double points; 
    bool wonLastRound; 
public: 
    Player() {} 
    Player(string n) 
    { 
     name = n; 
    } 
    const Player &operator=(const Player &); 
    void addPoints(double p) 
    { 
     points += p; 
    } 
}; 

et voici le code à instancier

void initPlayers() 
{ 
    for(int i = 0; i < 4; i++) 
     players[i] = new Player("Player " + i); 
} 

toute aide serait appréciée, je vraiment besoin de ce projet bientôt fini!

+3

Comment les joueurs sont-ils définis? – dlev

+0

c'est juste au-dessus de la méthode initPlayers – CaffeinatedCM

+1

Comment, pas où. Quel est son type? – GManNickG

Répondre

0

Il devrait être,

Player& operator = (const Player &); // remove "const" (it's not mandatory though) 

problème réel réside dans l'affectation à l'intérieur de la boucle for. Vous n'avez pas à new les objets, car vous stockez la valeur et non le pointeur. Utilisation:

players[i] = Player("Player " + i); // no need to do "new" 
+0

merci qui a fonctionné! – CaffeinatedCM

+0

Notez que la première modification (const) n'est pas pertinente pour le problème. –

+0

Il y a beaucoup plus de problèmes que cela. – Falmarri

Questions connexes