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 :

Conception de prog classe avec amitié


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Par défaut Conception de prog classe avec amitié
    Bon enfaite je suis entrain d'essayer l'amitié car j'aimerais partager des valeurs entre deux classes ...

    il s'agit d'une classe typique comme celle représentant un élève et d'un module d'affichage (wxPanel) pour configurer la classe Eleve:

    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
    30
    31
    32
     
    class Eleve {
    public:
    Eleve(int ID, string nom, string prenom)
     
    private:
       int ID;
       string nom;
       string prenom
     
    }
     
     
    class PanelEleve : public wxPanel {
     
    public:
    PanelEleve(wxWindow *parent);
    friend FillAndDraw(Eleve *eleve)
     
    }
     
     
    PanelEleve::PanelEleve(wxWindow *parent): wxPanel(parent)
    {
    }
     
    PanelEleve::FillAndDraw(Eleve *eleve) {
     
    CtrlText *t1 = new CtrlText(this, &(eleve.nom));
    CtrlText *t2 = new CtrlText(this, &(eleve.prenom));
     
    }

    Théoriquement en faisant ce genre de manip, je peux modifier de façon graphique et momentané les valeur prénom et noms.
    Mais sinon durant tout l'exécution du programme j'ai juste la classe Eleve qui est indépendante de la partie graphique.

    Cependant ça ne compile pas car il me dit que eleve.nom et eleve.prenom est private alors que j'ai pourtant utiliser le mots-clef friend

  2. #2
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 21
    Par défaut
    Le clé friend doit être mis dans la classe qui 'partage' ces resource avec ces amis, pas par les amis qui veulent accéder à tes ressource.

    C'est logique : tu partages les choses qui t'appartiennent, pas celle des autres (tu empreinte celles que les autres on partagé).

    Donc tu devrais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Eleve 
    {
    	// ici on déclare que PanelEleve est notre ami, il a le droit d'accès au membres privés de Eleve
    	friend class PanelEleve;
    public:
    	Eleve(int ID, string nom, string prenom);
     
    private:
    	int ID;
    	string nom;
    	string prenom
    };
    Sinon, tu devrais remplacer par .

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

Discussions similaires

  1. Compile prog C avec Perl
    Par kij dans le forum MFC
    Réponses: 4
    Dernier message: 18/04/2005, 11h56
  2. probleme compilation classe avec Borland c++ compiler 5.5
    Par softblue dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 17/06/2004, 15h16
  3. Debugger un prog DOS avec SoftIce !
    Par TONIAPEL dans le forum Assembleur
    Réponses: 2
    Dernier message: 20/01/2004, 11h41
  4. Objets/Classes avec un SGBD
    Par tiboleo dans le forum Décisions SGBD
    Réponses: 13
    Dernier message: 09/11/2003, 16h04
  5. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28

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