无法将对象存储到数组中? C ++

时间:2011-05-17 02:53:32

标签: c++ arrays object

我正在尝试做一些简单的事情并将一个对象存储到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);
}

任何帮助将不胜感激,我真的需要尽快完成这个项目!

1 个答案:

答案 0 :(得分:0)

应该是,

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

实际问题在于for循环内的分配。您没有new对象,因为您正在存储值而不是指针。 用法:

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