我試圖從Design Patterns 中獲得第一個基本單例示例,但這讓我難堪。對Singleton :: Singleton()的未定義引用()
此代碼與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()'
。
我錯過了什麼?
你宣佈一個構造函數(你不需要),但忽略了他的定義。 –
@DieterLücking_「你不需要」_這並不完全正確。至少它應該是「私人」的。 –
@πάνταῥεῖ確定 - 該死的反模式 –