IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Objet unique pour différentes classes


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 36
    Points : 33
    Points
    33
    Par défaut Objet unique pour différentes classes
    Bonjour,

    Je viens à vous pour confirmer une idée que j'avais.

    Différentes classes utilisent une classe (A) qui n'a besoin d'être instanciée qu'une fois.

    A.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class A{};
    
    A& a()
    {
        static A* x = new A();
        return *x;
    }
    Si j'inclus le fichier A.h dans les différentes déclarations de classes qui l'utilisent, en utilisant a(), un seul objet A sera créé, non ?

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Oui, c'st un design pattern Singleton (en gros)

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Salut

    ce dont tu as besoin est un singleton : http://fr.wikipedia.org/wiki/Singlet...de_conception)

    En l'occurence, ta méthode ne convient pas tout à fait car ton objet ne sera pas détruit correctement. De plus, comme tu n'interdis pas la construction à l'extérieur de la classe, n'importe qui pourra, à priori, l'instancier.

    Il existe plusieurs manière de coder le singleton, en voici une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    class Singleton 
    {
    public:
    	static Singleton * GetInstance();
    	virtual ~Singleton () { }
     
    private:
    	// On interdit la création
    	Singleton();
    	// On interdit aussi la copie
    	Singleton(const Singleton&);
    	Singleton & operator=(const Singleton&);
    };
     
    Singleton::Singleton()
    {
    }
     
    Singleton * Singleton::GetInstance()
    {
    	static Singleton monInstance;
    	return &monInstance;
    }
     
    int main() {
    	// l'instance de singleton sera toujours unique.
    	Singleton * pSingleton = Singleton::GetInstance();
            return 0;
    }
    Voir aussi : http://come-david.developpez.com/tut...page=Singleton
    Find me on github

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    ta méthode ne convient pas tout à fait car ton objet ne sera pas détruit correctement


    Donc Singleton::Singleton() sera exécuté une seule fois... C'est ce que je voulais.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MEX] Fichier générique pour différentes classes
    Par takout dans le forum MATLAB
    Réponses: 9
    Dernier message: 22/06/2012, 12h33
  2. J2EE : Objet unique pour chaque session.
    Par rockley dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 19/04/2011, 10h02
  3. Un événements unique pour différent bouttons.
    Par Rifton007 dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 06/06/2009, 15h09
  4. [XSLT] template unique pour 2 utilisations différentes
    Par sozie9372 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/04/2006, 15h24
  5. Réponses: 3
    Dernier message: 24/10/2005, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo