C ++构造函数和D&C中的类

时间:2018-06-07 22:04:05

标签: c++

我有两个类,玩家和游戏。

class Game
{
        private:
            int maxPlayer;
            Player** playersArray;
        public:
            Game(int maxPlayer);
            ~Game();
}

playersArray中的每个索引都包含指向类Player的指针。我不确定如何制作类游戏的构造函数和析构函数。这是我的第一次尝试,但代码并没有任何想法?

Game::Game(int maxPlayer)
{   this->playersArray = new Player*[maxPlayer];
    for(int i=0;i<maxPlayer;i++)
    {
        playersArray[i]=NULL;
    } 
}

Game::~Game() {
    for(int i=0;i<maxPlayer;i++)
    {
        delete[] *playersArray[i];
    }
    delete (playersArray);
}

2 个答案:

答案 0 :(得分:0)

自从我用C ++编程以来,它已经存在。我看到的唯一错误是构造函数有一个参数maxPlayer,从不接触成员变量maxPlayer。析构函数使用成员变量maxPlayer,它可能从未被初始化。构造函数应该将参数赋给成员变量。

删除数组时,您应该使用delete [],但对单个对象使用delete。所以,我认为你已经交换了它们。

答案 1 :(得分:-1)

好的,既然我没有得到对我的评论的回复,那么让我试一试:如果您修改了如下所示的代码,它是否按照您的预期进行操作?

class Player
{

};

class Game
{
private:
    int maxPlayer;
    Player** playersArray;
public:
    Game(int maxPlayer);
    ~Game();
};

Game::Game(int maxPlayer)
{
    this->maxPlayer = maxPlayer;
    this->playersArray = new Player*[maxPlayer];
    for (int i = 0;i<maxPlayer;i++)
    {
        playersArray[i] = NULL;
    }
}

Game::~Game() {
    for (int i = 0;i<maxPlayer;i++)
    {
        delete playersArray[i];
    }
    delete[] playersArray;
}

int main()
{
    Game g(10);
    return 0;
}