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

can't store an object into array? C++

本文关键字:数组 C++ 存储 对象      更新时间:2023-10-16

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

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

应该是,

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

实际问题在于循环for赋值。您不必new对象,因为您存储的是价值而不是指针。用法:

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