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 :

STL : Bug avec une list


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut STL : Bug avec une list
    Bonjour à tous,

    J'ai un problème tout bète, mais je n'arrive pas à le régler =(

    Dans un fichier .h, j'inclus le fichier <list> pour créer une liste, et lorsque je compile le projet, on dirais qu'il ne semble pas inclure le <list>, car il me dit lorsque je crée l'objet qu'il y a plusieurs erreurs :

    replay.h(18): error C2143: erreur de syntaxe : absence de ';' avant '<'
    replay.h(18): error C2501: 'Replay::list' : Spécificateurs de type ou de classe de stockage manquants
    replay.h(18): error C2238: jetons inattendus avant ';'
    replay.cpp(13): error C2065: 'replayList' : identificateur non déclaré
    replay.cpp(13): error C2228: la partie gauche de '.push_back' doit avoir un type class/struct/union
    replay.cpp(18): error C2228: la partie gauche de '.clear' doit avoir un type class/struct/union
    replay.cpp(18): error C3861: 'replayList': identificateur introuvable, même avec une recherche qui dépend de l'argument



    Voici mon 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
    replay.h
    
    #ifndef REPLAY_H
    #define REPLAY_H
    #include <fstream>
    #include "node.h"
    #include <allegro.h>
    #include <vector>
    
    class Replay
    {
    public:
    	void insertNode(Node noeud);
    	void loadReplay(char filename);
    	void showReplay();
    	void clearList();
    	void saveReplay();
    private: 
    	vector<Node> replayList;
    };
    #endif

    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
    replay.cpp
    
    #include "replay.h"
    #include <string>
    #include "node.h"
    #include <allegro.h>
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    
    void Replay::insertNode(Node noeud)
    {
    	replayList.push_back(noeud); //On insert un noeud dans la liste...
    }
    
    void Replay::clearList()
    {
    	replayList.clear(); //on supprime toutes les entrées dans la liste.
    }

    J'imagine que l'erreur est dans un include, mais j'ai beau chercher je ne trouve pas

    Merci de votre aide,

    Winder.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Heu, vu l'heure tardive, je suis petu etre un peu fatigué, mais...

    Je ne vois nulle part ton inclusion de l'entete <list>, ni ta déclaration d'un quelconque membre nommé list dans ta classe...

    En plus, il faut savoir que les classes vector, list, map et toutes les autres de la STL sont déclarées dans l'espace de nommage std, et donc que, en dehors de toute using directive, il faut préciser que lon veut utiliser les classes de l'espace de nommage std sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::vector<Node> replayList;
    Enfin, on peut attirer ton attention sur le n'est pas nécessaire, dans un fichier qui inclue déjà (ici) replay.h de refaire une inclusion des fichiers qui sont déjà inclus dans replay.h, voir de ceux qui sont déjà inlcus dans node.h

    Ainsi, si alegro.h et fstream sont déjà inclus dans node.h (ce qui me semble avoir une grande probabilité d'être), tu peux tres bien te contenter d'inclure node.h et <vector> dans replay.h, et, dans replay.cpp, la simple inclusion de replay.h fera qu'avec le jeu des inclusions indirectes (les fichiers inclus dans les fichiers inclus...), ce sera "comme si" (et meme un peu plus) tu avais d'office inclus vector, node.h, fstream, alegro.h et tous les autres qui sont inclus (peut etre par inclusion indirecte) dans node.h
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. STL Problème avec une liste d'instances de class
    Par BruceBoc dans le forum SL & STL
    Réponses: 12
    Dernier message: 16/02/2007, 14h12
  2. [MySQL] Problème avec une liste déroulante
    Par leloup84 dans le forum SQL Procédural
    Réponses: 19
    Dernier message: 24/01/2006, 12h57
  3. Réponses: 7
    Dernier message: 24/01/2006, 11h03
  4. alligner des textbox (input) avec une liste
    Par sundjata dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/01/2006, 15h16
  5. Remplir 3 champs textes différents avec une liste déroulante
    Par azorol dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/12/2005, 00h04

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