On m'a dit que mon modèle singleton ne peut pas vraiment être un singleton, car il y a des façons de créer plus d'un objet avec lui. Quand j'ai demandé comment le réparer, j'ai été ignoré. C'est pourquoi je viens ici pour demander est ma classe modèle singleton vraiment un singleton?Est-ce que mon modèle singleton est vraiment un singleton?
#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
Il est ensuite héritée par une classe que je veux être un singleton comme ceci: -
class Console : public Singleton<Console>
{
};
Avez-vous essayé de compiler 'Console c1, c2,'? –
Je viens de trouver un moyen de contourner l'instance unique.Si j'initialise la console avec la console c1; J'ai une instance de Console pour c1 et une 2ème instance de Console dans le pointeur d'instance dans la classe Singleton. – ctor