在singleton-Program中传递指针已经停止工作

C++ Passing pointer in singleton-Program has stopped working?

本文关键字:停止工作 指针 singleton-Program      更新时间:2023-10-16

所以我尝试开发一个类Scoreboard,一个类Player和一个类Player2(都是单例),每个游戏都应该拥有一个指向这个Scoreboard的指针。当我运行我的程序时,它停止工作,我相信这是因为指针,因为当我试图访问玩家指向的计分板时,它发生了。基本思路是:

class Player
{
private :
    static Player *instance;
    Player(Scoreboard* sb2)
    {
        s=sb2;
    }
public:
    Scoreboard *s;
    static Player *ins(Scoreboard* sb)
    {
        if (NULL==instance)
        {
            instance=new Player(sb);
        }
        return instance;
    }
};
Player* Player::instance=NULL;

在main函数中,调用将是:

Scoreboard* si= Scoreboard::startGame();
ply1=Player::ins(si);

修改

Player* Player::instance=NULL;

Player Player::*instance=NULL;