有人告訴我,我的單身模板可能不是真正的單身人士,因爲有辦法用它創建多個對象。當我問及如何解決這個問題時,我被忽略了。這就是爲什麼我來這裏要問的是,我的單身模板類真的是單身?我的單身人士模板真的是單身人士嗎?
#ifndef SINGLETON_H_
#define SINGLETON_H_
template <class T>
class Singleton
{
private:
static T* instance;
protected:
Singleton<T>()
{
}
public:
static T* getInstancePtr()
{
if (instance == 0)
instance = new T();
return instance;
}
};
template <class T> T* Singleton<T>::instance = 0;
#endif
然後,這是由類繼承的,我希望成爲像這樣一個單: -
class Console : public Singleton<Console>
{
};
你試過編譯'控制檯C1,C2;'? –
我剛剛找到了一種方法來規避單個實例。如果我用控制檯c1初始化控制檯;我有一個c1的控制檯實例,以及Singleton類實例指針中的Console實例的第二個實例。 – ctor