(単純定義)シングルトン

アバター
TororoShinku
記事: 67
登録日時: 15年前
住所: 伊勢神宮のある美し国
連絡を取る:

(単純定義)シングルトン

投稿記事 by TororoShinku » 14年前

CODE:

class Singleton
{
public:
   static Singleton* Instance();

protected:
   Singleton();

private:
   static Singleton* _Instance;
}




Singleton  Singleton::Instance()
{
   if(_Instance == 0)
      _Instance = new Singleton;

   return _Instance;
}

単純な定義なら
こんな感じかな。。

多分、2つ以上の作成は不可能のはず。
最後に編集したユーザー TororoShinku on 2010年10月27日(水) 19:07 [ 編集 1 回目 ]

アバター
ナムアニクラウド
記事: 16
登録日時: 14年前

Re: (単純定義)シングルトン

投稿記事 by ナムアニクラウド » 14年前

 唯一のインスタンスを関数内の静的変数にしてしまう方法もあるそうです。
また、コピーコンストラクタの禁止も忘れずに。

 そんなわけで、こんな感じかも。

CODE:

class Singleton
{
public:
	static Singleton* Instance();
	
protected:
	Singleton(){}
	Singleton( const Singleton& );
	Singleton& operator=( const Singleton& );
};

Singleton* Singleton::Instance()
{
	static Singleton _Instance;	//一度しか生成されない
	return &_Instance;
}
長文失礼しました。
参考:http://www.geocities.jp/KY_webid/design ... n/009.html