0

我想初始化一个静态属性,但我不知道为什么会出现这个错误。

class LancerDisqueDur
{

private:
 static LancerDisqueDur *m_instance;

public:
 static LancerDisqueDur* instance();
 void afficherDetail();

};

还有我的.cpp

LancerDisqueDur::m_instance=NULL;

LancerDisqueDur* LancerDisqueDur::instance()
{
if(m_instance==NULL)
{
    m_instance=new LancerDisqueDur();
    std::cout << "Démarrage du disque" << std::endl;
}

return m_instance;
}

我认为实例已正确初始化,不是吗?提前致谢

4

1 回答 1

2

你需要静态的类型:

LancerDisqueDur* LancerDisqueDur::m_instance=NULL;

请注意,您可以通过staticstaticinstance()` 方法中使用实例来大大简化代码。

class LancerDisqueDur
{

public:
 static LancerDisqueDur& instance();
 void afficherDetail();
};

LancerDisqueDur& LancerDisqueDur::instance()
{
    static LancerDisqueDur instance;
    std::cout << "Démarrage du disque" << std::endl;
    return instance;
}
于 2013-07-27T16:02:24.227 回答