2011-05-17 112 views
0

我想要做一些簡單的事情,並將對象存儲到C++數組中,但它一直說我不能使用=操作符與我的類的右側操作數。下面的代碼:不能存儲一個對象到數組中? 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; 
    } 
}; 

和這裏的實例

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

任何幫助,將不勝感激的代碼,我真的需要這個項目建成後很快!

+3

玩家如何定義? – dlev 2011-05-17 02:57:26

+0

它正好在initPlayers方法之上 – CaffeinatedCM 2011-05-17 03:04:52

+1

如何,不在哪裏。它的類型是什麼? – GManNickG 2011-05-17 03:06:16

回答

0

它應該是,

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

實際的問題在於分配for循環。你不需要new的對象,因爲你正在存儲的值而不是指針。 用法:

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

謝謝你的工作! – CaffeinatedCM 2011-05-17 03:07:51

+0

請注意,第一個更改(const)與問題無關。 – 2011-05-17 03:11:25

+0

還有比這個更多的問題。 – Falmarri 2011-05-17 03:12:24

相關問題