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 :

Instanciation de classe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Par défaut Instanciation de classe
    Bonjour !

    J'ai deux classes A et B.
    Un fichier A.h
    Un fichier A.cpp
    Un fichier B.h
    Un fichier B.cpp


    Un élément de la classe A instancie (crée) un élément de la classe B sous la forme:

    B::B(....)

    J'ai donc ajouté #include "B.h" dans mon fichier A.h.


    De cette façon, plusieurs éléments de la classe A vont instancier des éléments de la classe B.
    Je voudrais savoir pour chaque élément de la classe B par quel élément de la classe A il a été créé.
    Il paraît donc logique de passer le pointeur de la classe A au constructeur de la classe B.
    Mais je ne vois pas trop comment faire ...

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par défaut
    Salut,

    La réponse rapide c'est que tu devrait faire un truc comme ca:
    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
     
    // B.cpp
    class A; // Forward de la définition de A pour éviter les includes cycliques
    class B
    {
      const A &m_cMaman;
     
    public:
      B(const A &pcMaman);
    };
     
    // B.cpp
    #include "A" // Ici, pas dans le .h
    B:B(const A &pcMaman) :
        m_cMaman(pcMaman)
    {}
     
    // Quelque part dans A.cpp
    B lpMonB(*this);
    Remarque le forward de la définition de la classe A pour éviter les includes cycles.
    Après, la classe mère est gardée comme une référence constante.

    Mais franchement, les doubles liens comme ça, c'est pas bien. Ca ajoute de la dépendance entre les classes. On peut aussi se demander pourquoi ne pas faire une seule classe. Si c'est pour faire une collection, alors pourquoi ne pas faire une inner class ou un pattern observer.
    Si tu m'en dis un peu plus sur ce qu'est A et B, pourquoi B doit connaître A et si A gardera beaucoup de B on pourra sûrement trouvé quelque chose de plus élégant.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Par défaut
    A est par exemple la partie musicale de la clarinette. Et en parsant la partition, je vois en premier la clef de sol qui est un objet de la cklasse B.
    Ensuite, je vais parser le basson qui va à nouveau avoir sa propre clef.


    Au bout du compte plusieurs clefs mais je ne sais plus à qui elles appartiennent

  4. #4
    Membre émérite
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par défaut
    Citation Envoyé par mulfycrowh Voir le message
    A est par exemple la partie musicale de la clarinette. Et en parsant la partition, je vois en premier la clef de sol qui est un objet de la cklasse B.
    Ensuite, je vais parser le basson qui va à nouveau avoir sa propre clef.


    Au bout du compte plusieurs clefs mais je ne sais plus à qui elles appartiennent
    Tu m'en dis pas beaucoup. Mais pour ce que je comprend, tu parse une partition de musique pour trouver ses notes.
    Je ne comprend pas pourquoi tes notes devraient savoir à quelle partition elles appartiennent. D'autant plus qu'une même note devrait pourvoir être utilisée dans une autre partition.

Discussions similaires

  1. [JAR]Instancier une classe d'un jar
    Par Foub dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/08/2005, 15h10
  2. Réponses: 3
    Dernier message: 13/08/2005, 15h18
  3. [MFC] où instancier mes classes?
    Par giova_fr dans le forum MFC
    Réponses: 3
    Dernier message: 26/07/2005, 13h15
  4. [Débutant(e)]Instancier une classe connaissant son nom (String)
    Par Invité dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 17/06/2005, 11h05
  5. [Débutant(e)]servlet qui instancie une classe personelle
    Par NiBicUs dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/02/2005, 12h00

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