目的:多くの例のみに制限されています
例:
#define AGT_DECLARE_SINGLETON(クラス名)\ パブリック:\ 静的なクラス名*インスタンス(); \ プライベート:\ 静的なクラス名* m_pInstance。\ \の#define AGT_DEFINE_SINGLETON(クラス名) クラス名*クラス名:: m_pInstance = NULL; \ クラス名*クラス名::インスタンス()\ {\ (NULL == m_pInstance)であれば、\ {\ m_pInstance =新しいクラス名。\ } \ m_pInstanceを返します。\ }
マネージャークラス { プライベート: マネージャー(){} 公共: 無効ショー() { COUT << "成功" <<てendl; } 公共: AGT_DECLARE_SINGLETON(マネージャー)//シングルトンの文 }; AGT_DEFINE_SINGLETON(マネージャー); //関数実現
int型のmain() { マネージャー*マネージャー=マネージャー::インスタンス(); マネージャ- >ショー(); マネージャー*マネージャ1 =マネージャー::インスタンス(); マネージャー*マネージャ2 =マネージャー::インスタンス(); IF(マネージャ1 ==マネージャ2) { COUT <<、 "マネージャ1 =マネージャ2" << ENDL。 } 他 { 裁判所未満<< "!マネージャ1 =マネージャ2" <<てendl; } 0を返します。 }