みんな大好き、シングルトン
ヘッダ
#pragma once class MyUser { private: static MyUser* user; MyUser(void); // コンストラクタ隠蔽 public: ~MyUser(void); // デストラクタ static MyUser* getInstance(); };
実装
#pragma once #include "StdAfx.h" MyUser* MyUser::user = NULL; // シングルトン初期化 MyUser::MyUser() { // コンストラクタ } MyUser::~MyUser(void) { // デストラクタ } MyUser *MyUser::getInstance() { OutputDebugString("MyUser::getInstance()\r\n"); if ( user == NULL ) { OutputDebugString("MyUser::getInstance() create instance\r\n"); user = new MyUser(); } return user; }
利用
MyUser *user = MyUser::getInstance();