C ++需要所有声明的类型说明符

时间:2013-07-27 16:00:05

标签: c++ class static

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

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;
}

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

1 个答案:

答案 0 :(得分:2)

你需要静态的类型:

LancerDisqueDur* LancerDisqueDur::m_instance=NULL;

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

class LancerDisqueDur
{

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

LancerDisqueDur& LancerDisqueDur::instance()
{
    static LancerDisqueDur instance;
    std::cout << "Démarrage du disque" << std::endl;
    return instance;
}