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 :

2 classes ayant besoin de l'un et l'autre


Sujet :

C++

  1. #1
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut 2 classes ayant besoin de l'un et l'autre
    bonjour,

    voila en fait j'ai un probleme:
    je met tout de suite le code

    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
     
    class A
    {
    public:
        int a;
        int b;
        vector<B>vB;
        void g();
        ...
    };
     
    class B : public A
    {
    public:
        void f();
        ...
    };
    Mon problème:
    Dans ma classe A, je DOIS avoir un vecteur<B> et pourtant pour ce faire, je dois déclarer class B avant la class A.

    Or, si je fais ça, je ne pourrai plus dériver la classe B de A
    Est-ce quelque chose possible à faire?

    Avoir un vecteur<B> dans la class A et en même temps la class B doit être dérivée de la class A?

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    Je ne connais pas le contexte d'utilisation de tes 2 classes mais cela me parait très bizarre comme conception.

  3. #3
    Membre chevronné
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Par défaut
    Salut,
    je ne sais pas ce que tu veux faire donc je m'intéresserai ici uniquement à la forme et non au fond: il suffit de déclarer B avant A (déclarer != définir) :

    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
     
     
    class B; // <- déclaration anticipée de B
    class A // définition de A
    {
    public:
        int a;
        int b;
        vector<B> vB;
        void g();
        ...
    };
     
    class B : public A // définition de B
    {
    public:
        void f();
        ...
    };
    A+

    <edit> Finalement je ne peux pas résister à l'envie de dire que je ne vois pas pourquoi une telle conception serait nécessaire: un père composé d'une collection de plusieurs de ses fils ? Tu prévois l'existence d'un fils B à l'intérieur de la classe père A, çà n'a pas de sens</edit>

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut Re: 2 classes ayant besoin de l'un et l'autre
    à tout casser, tu peux faire

    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
     
    class C
    {
    public:
        int a;
        int b;
     
        void g();
        ...
    };
     
    class A : public C
    {
        vector<B>vB;
    }
     
    class B : public A
    {
    public:
        void f();
        ...
    };
    mais bon, je ne comprend pas trop pourquoi tu as besoin d'une classe mère contenant un vecteur d'objets de la classe fille. c'est spé



    Enjoy yourself !

  5. #5
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    Bha tout simplement car je fais des Fenêtres sous DirectX ^^
    Ma class mère A étant ma fenetre principale qui contient des fenetres filles, et mes fenetres filles étant des clones de ma fenetre mère, enfin, vous voyez un peu ^^

    Merci beaucoup, je savais pas qu'on pouvais déclarer une classe comme ça aussi (j'aurai dû essayé =p)

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

Discussions similaires

  1. Classes ayant besoin l'une de l'autre et #include
    Par theanthony33 dans le forum C++
    Réponses: 4
    Dernier message: 22/02/2009, 14h15
  2. Réponses: 11
    Dernier message: 04/02/2007, 17h33
  3. [DOM] Débutant en XML ayant besoin de conseils
    Par vallica dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/08/2006, 20h15
  4. Debutant VB.net ayant besoin d'aide
    Par iLc00 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/07/2006, 23h47
  5. Réponses: 1
    Dernier message: 03/06/2006, 13h59

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