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

SL & STL C++ Discussion :

Utilisation d'un conteneur membre d'une autre classe


Sujet :

SL & STL C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Utilisation d'un conteneur membre d'une autre classe
    Hello,

    J'ai défini (et rempli) un map dans une classe, et j'aimerais accéder à ses données depuis une autre classe.

    Suivant les règles de l'encapsulation, ce map est privé.

    Quelle est la manière la plus académique d'y accéder ? Dois-je faire une fonction qui renvoit un itértateur sur le begin() ? Et ensuite, quelle instruction for dois-je définir pour itérer sur mon map ?

    Merci.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    L'action que tu veux faire sur ta map ne correspond-elle pas à un service de ta classe? Vérifie ta conception. En général, le problème est ici
    Après pour répondre strictement à ta question, tu peux (au choix):
    -> une méthode avec un foncteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    template<OperationT> PourTous(OperationT Operation)
    {for_each(map.begin(),map.end(),Operation);}
    -> implémenter une interface d'itérateur,
    -> redéfinir un opérateur [] ou un GetAt,

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Suivant les règles de l'encapsulation, ce map est privé.
    Si cette map fait partie de l'interface, quel intérêt ?

    Quelle est la manière la plus académique d'y accéder ? Dois-je faire une fonction qui renvoit un itértateur sur le begin() ? Et ensuite, quelle instruction for dois-je définir pour itérer sur mon map ?
    Tout dépend de ce que tu dois exposer.
    Si tu veux permettre d'insérer et d'effacer des éléments, expose la map.
    Si tu veux juste permettre de chercher des éléments, fais une vue ou fournis ces fonctionnalités directement dans ta classe.
    Si tu veux juste permettre de parcourir linéairement les éléments, expose les itérateurs.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/12/2014, 17h03
  2. debutant : classe utilisant une autre classe
    Par zoubla dans le forum Débuter
    Réponses: 6
    Dernier message: 20/10/2006, 15h40
  3. Réponses: 5
    Dernier message: 29/06/2006, 17h23
  4. Réponses: 2
    Dernier message: 02/05/2006, 14h34
  5. utilisation de fonction membre dans une autre
    Par tcharles dans le forum C++
    Réponses: 4
    Dernier message: 14/12/2005, 17h19

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