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 :

Problème avec "list" dans c++


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut Problème avec "list" dans c++
    Bonjour à Tous,
    voila mon programme en c++:
    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
    40
    41
    42
    43
    44
    45
    46
    47
     
     #include <stdio.h>
    #include <iostream>
    #include <map>
    #include <list>
    #include <string.h>
     
    template <typename T>
    class tab
    {
    typedef typename std::list<T>::iterator iterator;
    public:
    void listAll() {
    iterator lit(l.begin()), lend(l.end());
     for(;lit!=lend;++lit) std::cout << *lit << ' ';
        std::cout << std::endl;
     
    }
     
     /* la méthode qui permet d'insérer un objet à la collection */
           void insert(const T& v)
           {
               l.push_back(v);
           }
     
    //private:
    std::list<T> l;
    };
     
     
    int main(int argc, char *argv[])
    {
     
    tab<std::string> res;
     
    printf("list des etats: \n");
    tab<std::string> etats;// tab etats
    etats.insert("A1");
    etats.insert("A2");
    etats.insert("A3");
    etats.insert("A4");
    etats.insert("A5");
     
    std::cout << "size: " << (int) etats.size() << std::endl;
     
        return 0;
    }

    La compilation de ce code dans l'env. linux avec la cmd: "g++ -ggdb -o test4 test4.cpp"
    à donner les erreurs suivantes:
    test4.cpp: In function ‘int main(int, char**)’:
    test4.cpp:44: error: ‘class tab<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >’ has no member named ‘size’


    Y'a t'il qq1 qui comprend où réside l'erreur.

    Merci pour vos REPONSES.

  2. #2
    Membre très actif

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Par défaut
    Bonjour,

    Le compilateur dit qu'il n'y a pas de fonction membre 'size' dans la classe templatée tab. Et je crois bien qu'il a raison ! Il faut que tu en crées une.

    Didier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    mais size() est une méthode prédéfinie dans la bibliothèque "list C++"
    size(): retourne la taille de la liste
    puisque elle est prédéfinie donc je vois pas pr koi il faut rédéfinir une autre fois dans la classe
    càd j'ajoute dans la classe tab une méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int size()
    	{
    	return l.size();
    	}

  4. #4
    Membre très actif

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Par défaut
    Pas tout à fait : size() est une fonction membre de la classe templatée std::list définie dans la bibliothèque standard.

    Si tu avait un objet de la classe std::list, tu pourrais appeler size(), mais dans ton code, etats est un objet de la classe tab qui n'a pas de fonction membre size().

    Didier

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Merci pour l'explication

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

Discussions similaires

  1. Problème avec la multi-sélection dans une zone de liste
    Par Mimisio dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/07/2007, 16h23
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44

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