デザインパターン:シングルトンモード

目的:多くの例のみに制限されています

例:

#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を返します。
}

 

  

 

おすすめ

転載: www.cnblogs.com/chusiyong/p/11433099.html
おすすめ