-
Singleton ou .. ?
Bonjour,
Je me posé la question, est ce que c'est mieux d'utiliser la classe Singleton pour pouvoir utiliser via un pointeur une classe dans une autre ou alors vu que je suis sous MSVC++ avec les headers précompilés, de faire un extern CRandomClass *pCRandomclass...
Je pense pas avoir été clair ^^ mais je demande quand même. :P
Merci !
-
Non pas vraiment clair.
Un singleton permet d'assurer l'instanciation unique d'une classe. Cette instance devient accessible à toute l'application.
C'est utilisé principalement pour les gestionnaires (gestionnaire de configuration, de log etc...)
Donc tout dépend de ce que représente ce pointeur. Si c'est juste un membre de ta classe (composition), laisse le dans la classe, s'il doit être globale dans ton application, utilise un singleton, s'il est juste partagé entre quelques classes, utilise des pointeur intelligents.
-
Quelle classe Singleton?
Il n'y a pas de classe Singleton standard.
Pour ton problème, si j'ai bien compris, tu demandes si il vaut mieu un singleton qu'une globale.
A priori, un singleton serait plus adequate dans ton cas : selon l'implémentation du singleton tu auras le controle de la creation et la destruction (un peu comme pour ton pointeur global avec extern, mais en plus sur).
En réalité ça dépends beaucoup de l'ensemble de l'architecture de ton programme...les variables globales sont juste déconseillées pour plein de bonnes raisons.
-
D'accord, merci je vais opter pour le singleton alors. :king:
-
Google un peu le terme "loki" et C++ pour trouver le site d'Andrei Alexescuj (écriture proche). Sa lib de template intègre un SingletonHolder très utile et facile à utiliser.