我试图从Design Patterns获取第一个基本单例示例 工作,但这让我很难过。
此代码与g++ -c Singleton.cpp
完全编译:
class Singleton {
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
};
Singleton* Singleton::_instance = 0;
Singleton* Singleton::Instance() {
if (_instance == 0) {
_instance = new Singleton;
}
return _instance;
}
但是当我添加骨架main()并使用g++ Singleton.cpp
进行编译时,我得到undefined reference to 'Singleton::Singleton()'
。
我错过了什么?
答案 0 :(得分:4)
您从未添加
的定义Singleton();
<{1}}中使用的是
Singleton* Singleton::Instance()
通常你应该并且可以布局像:
这样的单身_instance = new Singleton;