重複の可能性:フィールドを持つ
C++
静的メソッドで静的メンバーを定義する
Web でのシングルトン実装に関する以下のコードを見つけたので、試してみることにしました。
#include <iostream>
class Singleton
{
Singleton(){}
static Singleton *s_instance;
public:
static Singleton* getInstance()
{
if(!s_instance)
s_instance = new Singleton();
return s_instance;
}
};
int main()
{
Singleton::getInstance();
return(0);
}
それはかなりまっすぐに見えます。しかし、Visual Studio でビルドすると、リンカー エラー メッセージが表示されます。
main.obj : error LNK2001: unresolved external symbol "private: static class Singleton
* Singleton::s_instance" (?s_instance@Singleton@@0PAV1@A)
C:\Users\boll\Documents\Visual Studio 2010\Projects\hello_world\Debug\hello_world.exe :
fatal error LNK1120: 1 unresolved externals'
s_instance
この場合、' ' が解決されないのはなぜですか?