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++Builder Discussion :

Classes croisées possible ?


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 113
    Points : 41
    Points
    41
    Par défaut Classes croisées possible ?
    Salut à tous.

    Je suis dans un cas que je ne sais absolument pas gerer. Imaginer une classe User et une classe Salon. Pour chaque User j'ai besoin davoir un tableau de Salon afin de savoir quels sont les salons auquels il participe. Mais pour chaque Salon, j'ai besoin d'un tableau de User afin de savoir quels sont les users dans ce salon.

    Si c'est possible, comment gerer ce genre de chose au niveau des Include ?

    Merci.

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Les deux classes vont avoir le #include du fichier .h de l'autre, par contre tu es obligé dans ce cas présent d'utiliser les pointeurs, je m'explique :
    Tu va avoir une troisieme classe qui va créé les pointeur, c'est à dire qui va connaitre tout les salons et toute les personnes, ensuite dans tes deux classe tu va faire une fonction qui prend en parametre une adresse du type de l'autre classe (Salon pour la classe User et User pour la classe salon), ces fonction vont ajouter les adresse dans les vecteurs, comme ca tu aura les adresses des salons ou des user et tu n'aura plus cas aller voir, via les adresse les propriété des salons ou des user que tu as besoin.

    J'espere avoir été clair, sinon redemande moi se que tu n'as pas compris.

    A plus

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Points : 161
    Points
    161
    Par défaut
    Pour les includes

    Dans le fichier User.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Salon;
    class User
    {
    ...
    std::vector<Salon *> mSalons;
    ...
    };
    Dans le fichier User.cpp:
    et même chose dans les fichiers Salons...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 113
    Points : 41
    Points
    41
    Par défaut
    Salut, Merci des réponses.

    pottiez >>

    Cela ne marche pas .. Je ne peux pas faire inclure l'un dans le fichier de l'autre. Cela tourne en boucle à la compile...

    slylafone >>

    J'ai pas bien compris. Tu as donc les fichiers. User.h, User.cpp, Salon.h et Salon.cpp


    Je pige pas tres bien le "class Salon" en haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Salon;
    class User
    {
    ...
    std::vector<Salon *> mSalons;
    ...
    };
    Pour le moment je vais pas utiliser de vecteur j'espere que l'ecriture n'est pas en rapport avec la stl.

  6. #6
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    En fait, le classe salon perme de signaler à la classe User que le type Salon est une classe, comme ca il sait que c'est une classe même si il ne connaît pas le contenu de cette classe tout de suite, il le connaitra dans le .cpp lors du #include "Salon.h"

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 113
    Points : 41
    Points
    41
    Par défaut
    haaaaaa ok ça marche !!!

    Merci à tous, c'est super sympat.

    @+

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

Discussions similaires

  1. Hériter un constructeur d'une classe abstraite, possible ?
    Par gvdmoort dans le forum Général Java
    Réponses: 1
    Dernier message: 27/10/2013, 22h28
  2. Requête croisée (possible ?)
    Par madmaxou dans le forum MySQL
    Réponses: 2
    Dernier message: 27/10/2008, 15h03
  3. [Système] Class html possible?
    Par Amistrad dans le forum Langage
    Réponses: 21
    Dernier message: 06/07/2006, 04h10
  4. [CR8.5] Table croisée champs résumés en ligne. Possible?
    Par ccquick dans le forum SAP Crystal Reports
    Réponses: 10
    Dernier message: 19/07/2004, 09h37

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