[C++] Petite question de connaissance ...

Bonjour bonjour,
voila une petite question

Quel est l'interet de placer le constructeur et le destructeur d'une classe en private ? Quelles autres méthodes peuvent également être placées en private ?

(pour info c'est niveau 3IF INSA)

merci par avance

5 réponses

  1. ok ok j'ai a peu pres compris le principe mais je ne suis pas sur qu'on puisse implementer ca en C++
    0
    1. Salut,

      L'implémentation en C++ d'un singleton peut reposer sur un constructeur
      et destructeur privé :
      http://tfc.duke.free.fr/coding/singleton.html

      Les méthodes privés, tout comme les attributs privés permettent de
      créer des fonctions appelables uniquement depuis les méthodes publiques.
      - améliorer la lisibilité en découpant le code d'une méthode publique
      - ne pas écrire plusieurs fois le même traitement reposant sur les attributs
      de la classe, typiquement si la classe à plusieurs constructeurs, une méthode
      privée init() peut être appelé au début de chaque constructeur, puis chaque
      constructeur effectue les traitements spécifiques (ces méthodes deviennent
      une bibliothèque interne à une classe profitant des attributs).
      - etc...

      A+, crabs
      0
      1. Bien le bonjour, je réouvre ce post parceque j'ai bien suivie le petit tuto "http://tfc.duke.free.fr/coding/singleton.html " mais je me trouve fasse a une erreur non pas pendant la compilation mais pendant l'edition de lien ...

        j'ai meme essayer de copier/coller ce qu'a fait le monsieur sur le site mais ca me met les meme message d'erreur :
        "
        test.cpp:(.text._ZN9SingletonI12UniqueObjectE11getInstanceEv[Singleton<UniqueObject>::getInstance()]+0x8): undefined reference to `Sing leton<UniqueObject>::_singleton'
        test.cpp:(.text._ZN9SingletonI12UniqueObjectE11getInstanceEv[Singleton<UniqueObject>::getInstance()]+0x52): undefined reference to `Sin gleton<UniqueObject>::_singleton'
        test.cpp:(.text._ZN9SingletonI12UniqueObjectE11getInstanceEv[Singleton<UniqueObject>::getInstance()]+0x9c): undefined reference to `Sin gleton<UniqueObject>::_singleton'
        /tmp/ccheZ0NX.o: In function `Singleton<UniqueObject>::kill()':
        "

        merci de m'aider prcq la je nage completement !

        Hadra
        0