[C++] Petite question de connaissance ...
kevin
-
Hadra38 -
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
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
A voir également:
- [C++] Petite question de connaissance ...
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Petite croix snap - Forum Snapchat
- Petite majuscule word ✓ - Forum Word
- Mettre en petites majuscules - Forum Bureautique
- Petite vague clavier - Forum Clavier
5 réponses
Salut,
Pour le constructeur, c'est utile dans le cas d'un singleton:
http://smeric.developpez.com/java/uml/singleton/
Pour le constructeur, c'est utile dans le cas d'un singleton:
http://smeric.developpez.com/java/uml/singleton/
ok ok j'ai a peu pres compris le principe mais je ne suis pas sur qu'on puisse implementer ca en C++
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
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
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
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