Skip to main content

シングルトンとやらについて

シングルトンパターン

シングルトンパターンについては、そんなに語ることもないと思うけれども、そのプログラムの中でインスタンスを1つに統一して使うデザインパターンのこと。

ゲームで言うと、ゲームの中でプレイヤーキャラを1体だけだして、2人目以上を登場させようとしたら自動的に出てこないように抑制できる仕組みです。

シングルトンのつくりかた♡

  1. コンストラクタを private に指定する 2.静的なポインタ変数を宣言する
    • んで、こいつにインスタンスのアドレスを格納する
    • 後は、この変数だけが唯一のインスタンスになるように頑張る
  2. 静的なポインタを初期化する
  3. インスタンスを返す 静的な GetInstance 関数 を実装する
    • 静的な変数 == nullptr
      • ⇒新しくインスタンスを生成する
    • 静的な変数 != nullptr
      • ⇒静的な変数(のポインタか参照)を返す

作ってみるよ

まずは普通にクラス作った場合を見てみよう(見る必要ない気もするけど)

ソースコード
#include <iostream>

class Hero
{
private:
	std::string name;
public:
	Hero()
		: name("AnPanMan")
	{
		std::cout << "Hero : my Name is " << name << std::endl;
	}
	~Hero()
	{
		std::cout << "Hero : my Name is " << name << " is dead" << std::endl;
	}
};
int main()
{
	Hero hero;
	Hero hero2;
	Hero hero3;
	return 0;
}