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

Fermé
kevin - 1 mars 2006 à 19:07
 Hadra38 - 22 janv. 2008 à 16:42
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

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
1 mars 2006 à 19:54
Salut,

Pour le constructeur, c'est utile dans le cas d'un singleton:
http://smeric.developpez.com/java/uml/singleton/
0
ok ok j'ai a peu pres compris le principe mais je ne suis pas sur qu'on puisse implementer ca en C++
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
1 mars 2006 à 20:08
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
merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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