# \[C++\] Classe singleton renforcée

**URL:** <https://www.debian-fr.org/t/c-classe-singleton-renforcee/27913>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 11:03 UTC](https://www.debian-fr.org/t/c-classe-singleton-renforcee/27913 "2016-02-20T23:03:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Semprobe](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/dbc845/32.png) [@Semprobe](https://www.debian-fr.org/u/Semprobe)\
**Post date:** [Février 20, 2016, 11:03 UTC](https://www.debian-fr.org/t/c-classe-singleton-renforcee/27913/1 "2016-02-20T23:03:43Z")

</div>

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

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

   private:
      Muxer();
};
```

Muxer.cpp

```auto
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.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 11:04 UTC](https://www.debian-fr.org/t/c-classe-singleton-renforcee/27913/2 "2016-02-20T23:04:27Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Semprobe](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/dbc845/32.png) [@Semprobe](https://www.debian-fr.org/u/Semprobe)\
**Post date:** [Février 20, 2016, 11:04 UTC](https://www.debian-fr.org/t/c-classe-singleton-renforcee/27913/3 "2016-02-20T23:04:28Z")

</div>

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