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

kevin -  
 Hadra38 -
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. kevin
     
    ok ok j'ai a peu pres compris le principe mais je ne suis pas sur qu'on puisse implementer ca en C++
    0
  2. crabs Messages postés 909 Statut Membre 507
     
    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
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. Hadra38
     
    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