C++要求所有声明都有一个类型说明符

C++ require a type specifer for all declarations

本文关键字:有一个 类型 说明符 声明 C++      更新时间:2023-10-16

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

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

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

您需要静态的类型:

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