c++单例类编译不通过
本文介绍了c++单例类编译不通过的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
class Singleton
{
private:
static Singleton* m_instance;
Singleton() {}
public:
static Singleton* getInstance();
};
Singleton* Singleton::getInstance()
{
if (m_instance==nullptr)
{
if (m_instance==nullptr)
{
m_instance = new Singleton;
}
}
return m_instance;
}
vs报错:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2001 无法解析的外部符号 "private: static class Singleton * Singleton::m_instance" (?m_instance@Singleton@@0PAV1@A) billapp C:\Users\Administrator\Documents\Visual Studio 2015\Projects\billapp\billapp\bill.obj 1
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用 billapp C:\Users\Administrator\Documents\Visual Studio 2015\Projects\billapp\billapp\MSVCRTD.lib(exe_main.obj) 1
为什么会不通过?
解决方案
需要在类声明外加上一句
Singleton * Singleton::m_instance = 0;
否则会有链接错误
这篇关于c++单例类编译不通过的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文