【问题标题】:C++ require a type specifer for all declarationsC++ 需要所有声明的类型说明符
【发布时间】:2013-07-27 16:00:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ class static


    【解决方案1】:

    你需要静态的类型:

    LancerDisqueDur* LancerDisqueDur::m_instance=NULL;
    

    请注意,您可以通过在 staticinstance()` 方法中使用 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;
    }
    

    【讨论】:

    • 谢谢。我从来不知道有必要在初始化中设置静态属性的类型..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2017-06-05
    • 2018-03-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多