我想初始化一个静态属性,但我不知道为什么会出现此错误。
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;
}