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

Langage C++ Discussion :

Définition de classe d'objet comportant des container de la STL


Sujet :

Langage C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Définition de classe d'objet comportant des container de la STL
    Bonjour,

    Je cherche à créer une classe objet mais je n'y parviens pas.
    Soit je suis débutant en C++ et ne dispose pas d'un très bon niveau en C, cela dit je ne me découragerai pas si pour autant.

    Voici ce que j'aurai fait en C, si j'avais utilisé des structures:

    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
    struct cList {                // Uniquement une liste chainée d'entiers
              int Cid;
              struct cList * nCid;
              };
     
    struct Link {                 // Liste chainée croisée(?) 
              int Cid;
              struct cList T;
              struct Link * nLnk
             };
     
    struct Cell {                // Contient un identifiant Cid et une liste de Link
              int Cid;
              struct Link * L;
             };
    Cependant, je veux le faire en C++.
    Aussi je pensais profiter de la STL et des objets List ou Vector;
    je pensais à quelque chose comme cela (avec des List):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Link {
             int Cid;
             list<int> T;
           public: 
                  // mes méthodes
            };
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Cell {
             int Cid;
             list<Link> L;
            public: 
                  // mes méthodes
            };
    Cependant, je ne comprend pas comment je vais pouvoir utiliser les méthodes de l'objet List issue de la STL de cette façon;

    Faut-il redéfinir les méthodes de la classe List comme méthode 'public' dans ma classe Link, puis Cell ?
    Je songeais à l'héritage mais je ne parviens pas à vraiment concevoir quelque chose qui me semble logique.
    La question est peut-être mal posée, et ma faible expérience du C++ me mène peut-être à quelque chose de totalement illogique !

    Dans tous les cas je vous remercie de me 'recadrer' si j'ai tout faut, et de bien vouloir répondre à ce problème si cela vous semble possible.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bon, ben j'ai trouvé (m'enfin je crois)

    Je suis passé de ça:
    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
    #include <iostream>
    #include <sstream>
    #include <list>
     
     
    int main(void)
    {
     using namespace std;
     
     std::list<int> cList;
     
     string inLst("1 2 3 4 5 6 7");
     istringstream inS(inLst);
     
     while (inS)
        {
        int i;
        inS >> i;
         cList.push_back(i);    
        }    
     
    cout << endl << "List values:" << endl;
     
          while (cList.size() > 0)
          {
            int value = cList.front();
            cout << value << endl;
            cList.pop_front();
        } 
    return 0;
    }
    à ça:

    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
    33
    34
    35
    36
    37
    38
    39
    #include <iostream>
    #include <sstream>
    #include <list>
     
     
    class Links {
        long Cid;
        public:
        std::list<int> cList;
        Links(){};
        ~Links(){};
    };
     
    int main(void)
    {
     using namespace std;
     
     Links L;
     
     string inLst("1 2 3 4 5 6 7");
     istringstream inS(inLst);
     
     while (inS)
        {
        int i;
        inS >> i;
         L.cList.push_back(i);    
        }    
     
    cout << endl << "List values:" << endl;
     
          while (L.cList.size() > 0)
          {
            int value = L.cList.front();
            cout << value << endl;
            L.cList.pop_front();
        } 
    return 0;
    }
    Le résultat donne:
    List values:
    1
    2
    3
    4
    5
    6
    7
    7
    Je crois que j'ai encore beaucoup à apprendre ...

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

Discussions similaires

  1. Définition et création des classes et objets
    Par Lana.Bauer dans le forum Contribuez
    Réponses: 6
    Dernier message: 11/02/2015, 11h15
  2. Réponses: 15
    Dernier message: 19/06/2006, 19h25

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