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 :

Résolution de problème ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut Résolution de problème ?
    Voilà, j'ai réussi à résoudre un problème d'amitié (non, je n'écris pas ma bio, je vous parle de class friend) d'une façon que je trouve relativement propre et que j'aimerais soumettre à vos critiques.

    J'ai au départ un certain nombres de classes, disons A, B, filleDeB_1, filleDeB_2, etc.

    La class B défini une fonction virtuelle maFonction destiné être appellé par A.

    A contient x objets de la class abstraite B (qui sont en faites instanciés par des objets des classes dérivant de B).

    Les class filleDeB_1, filleDeB_2, etc. héritent de B et doivent accéder à des membres privés de A pour maFonction.

    Aucune autre classe que A ne peut instancier des objets de classe B ou de ses classes dérivées (les classes B & filles sont à l'usage exclussif de A).
    A n'a pas à connaître et déclarer comme amies les classes fille de B.

    Donc le problème est là, les filles de B ne sont pas amies de A mais doivent accéder à ses membres privés.

    Ma solution :
    Pour A :
    Déclarer B comme amie.

    Pour B :
    Déclarer B comme amie de A.
    Déclarer comme membres protégés en B toutes des références vers les membres privées de A que les filles de B devront accéder.
    Déclarer le constructeur de B comme protégé.

    pour les filles de B :
    Déclarer A comme amie.
    Accéder aux membres privées de A par les référence en B.
    Déclarer le constructeur privé.

    voilà, je peux déclarer autant de fille à B que je veux, sans jamais devoir changer une ligne de code en A ou en B, tout en ayant accès aux membres privés de A qu'il me faut.

    (Moralité : vive java qui permet l'accès aux données privées de la classe conteneur par ses classes internes)

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Solution la plus simple : passer les membres de A qui devront être accédés/modifiés par B et ses filles dans B. Tu peux le faire soit par des données membres, soit par des paramètres de B::maFonction.

Discussions similaires

  1. Réponses: 33
    Dernier message: 13/11/2007, 01h08
  2. Réponses: 0
    Dernier message: 23/10/2007, 12h47
  3. Assistant de résolution de problème
    Par shawn12 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 27/08/2007, 23h47
  4. Réponses: 12
    Dernier message: 07/06/2007, 21h23

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