在我的GUI應用程序(MFC)中,我正在使用dll在屏幕上顯示某些內容。我有一個靜態庫,它有一個單例類。 例如:sing.lib。我包括應用程序(EXE)項目中的sing.lib和dll項目(因爲都使用這個單例類)單個類實例不同於GUI exe和dll
問題是進入EXE和DLL中的實例是不同的。兩者都調用構造函數! 請參閱單例類代碼片段。
class A
{
private:
A();
virtual ~A();
static A* m_pInstance;
public:
static A* GetInstance()
{
if (NULL == m_pInstance)
{
m_pInstance = new A();
}
return m_pInstance;
}
}
[稍微OT]我感到震驚的答案沒有提到Singleton是一種反模式,考慮到我在這裏看到的所有Singleton抨擊... –