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 :

méthode structure de donnée


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 18
    Points : 14
    Points
    14
    Par défaut méthode structure de donnée
    Bonjour,

    Pour commencer voici un peu de 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    class Objet
     {
       public:
        // default constructor
        Objet ()
        {
     
        }
        // destructor
        ~Objet()
        {
     
        }
        // Add ()
        void Add (int entry)
        {
          table.push_back(entry);
        }
        vector<int> table;
     };
    int main()
    {
    Objet x0;
    x0 . Add ( 1 ) . Add (1 );
    return 0;
    }

    J'ai une classe (Objet), elle stocke des entiers dans un vecteur. J'aimerai pouvoir utiliser la méthode add de cette façon plutôt que de devoir réecrire à chaque ligne x0.Add(...).

    c'est à dire en faisant: xo.Add(..).Add(....)
    Comment puis je faire?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Pour ce faire il te faut retourner une référence de l'objet lui-même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Objet & Add (int entry)
    {
        table.push_back(entry);
        return *this;
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Merci
    Et mettons que je veuille afficher tous les entiers de mon vecteur en overloadant <<? Je comprends le principe avec un objet simple, mais pas avec un vecteur?

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est exactement le même principe, à ceci près que la classe std::vector est une classe template, à ce titre, il faudra donc rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    template <typename T>
    std::ostream & operator << (std::ostream & stream, std::vector<T> const & myVec) { ... }
    ou si tu te limites au type int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::ostream & operator << (std::ostream & stream, std::vector<int> const & myIntVec) { ... }

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/02/2013, 14h55
  2. Réponses: 2
    Dernier message: 03/11/2009, 22h34
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 20h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 16h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 18h10

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