07/05/15 22:41:02
>>202
クラスの静的メンバ変数は、外部で定義しなければならない。
Cのグローバル変数がヘッダで宣言して、どこか1ヶ所で定義するのと同じ理屈。
それはともかくマルチスレッドを考慮しないのなら、単にこうでいい。
class Singleton {
public:
static Singleton getInstance() {
return singleton;
}
~Singleton() {}
private:
static Singleton singleton;
Singleton() {}
};
static Singleton Singleton::singleton;
マルチスレッドを考慮するなら、Singletonはポインタ、
当然std::auto_ptrやboost::scoped_ptrあたりにすべき。