[C++] Classe singleton renforcée

Bonjour,

Je cherche à créer une classe de type singleton, donc qui n’admettrait pas que deux objets de cette classe soit présents en mémoire simultanément, mais en plus j’aimerais renforcé la contrainte. Je souhaite que durant toute l’exécution de mon programme, il soit impossible d’instancier plusieurs objets singletons, même s’ils se sont pas présent en même temps en mémoire. En d’autre termes, si un object singleton est crée, puis détruit, je veux interdire à quiconque d’en créer un nouveau.

Voici mon code (enfin, voici le code que j’ai pompé sur Wikipédia serait plus honnête ^^) :

Muxer.h

class Muxer
{
   public:
      static Muxer* getInstance();
      ~Muxer();

   private:
      Muxer();
};

Muxer.cpp

Muxer* Muxer::getInstance()
{
   static Muxer* instance = new Muxer();
   return instance;
}

Après moult tests et lectures, je pense - je dis bien, je pense - que cette configuration est suffisante. Si j’ai tout bien compris, la ligne d’instanciation de la variable statique ne sera exécuté qu’une seule fois au lancement du programme, donc l’appel au constructeur le sera une seule et unique fois également.

Mais comme je suis loin d’être sur de mon coup, je serais rassuré si quelqu’un pouvait pour confirmer ça svp.
Merci d’avance.

Je crois bien que c’est suffisant. Pour avoir un fonctionnement plus sophistiquée encore il pourrait être intéressant de se tourner vers une factory c’est à dire une classe qui s’occupe de créer ou non et comme tu le souhaite ton objet.

Merci.
Je regarderai les “factory” à l’occasion, j’ai vu que la doc ne manquait pas.
Bonne soirée.