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 :

problème de déclaration de templates


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut problème de déclaration de templates
    bonjour g un soucis dans la déclaration suivante :

    #include "./Animal.h"
    #include <vector>

    typedef vector<Animal*> Vecanim;

    6 C:\Documents and Settings\yohann\Bureau\Projet Lapin\nouveau\includes\Faune.h expected init-declarator before '<' token

    g ça comme erreur de compile

    avec un vector de int ça marche sans soucis mais en fait on dirait qu'il ne connait pas le type animal ?!

    bref si quelqu'un peut me dépaner , merci à vous
    bonne soirée

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut code classe faune
    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
    48
    49
    50
     
    #ifndef _FAUNE
    #define _FAUNE
    #include "./Animal.h"
    #include <vector>
     
     
    typedef vector<Animal*> Vecanim;
     
    class Faune:private Vecanim{
          public:
            Faune():VecAnim(){}
            ~Faune(){
                     Vecanim::iterator i;
                     for(i=this->begin();i != this->end();i++)delete this->operator[](i);
                     this->clear();
                    }
     
     
            int getSize(){return this->size();}
     
                void addAnimal(Animal* a){
                      this->push_back(a);
         }
            void delAnimal(int ref){
                 Vecanim::iterator i;
                 i = this->begin();
                 while (i != this->end() || this->operator[i].getRef() != ref) i++;
                 if( i!=this->end()){
                     delete this->operator[](i);
                     this->operator[](i)=NULL;
                     this->erase(i,i);
         }
    }
            Animal* seekAnimal(int ref){
                       Vecanir::iterator i;
                       i = this->begin();
                       while((i != this->end() || this->operator[i].getRef() != ref) i++;
                       if( i!=this->end()) return this->operator[](i);
                       }        
     
            Animal* & operator[](int i){
                      return *(begin() + i);
            }
     
            };
     
     
     
    #endif //_FAUNE

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    vector est dans le namespace std.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    Merci beaucoup pour le coup de main.
    Malheureusement une autre erreur se présente à moi:

    Dans Animal.h

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    #ifndef _ANIMAL
    #define _ANIMAL
     
    #include "./Faune.h"
    #include "./Monde.h"
     
    int refGenerale=0;
     
    class Animal{
          int wAge;
          int wSex;
          bool wIfDead;
          int wEnergy;
          int wRef;
          bool wIfReprod;
          char wType;
          Herbe* wPos;
                 public:
                        Animal();
                        virtual ~Animal();
     
                        int getAge();
                        int getSex();
                        bool getIfDead();
                        int getEnergy();
                        int getRef();
                        bool getIfReprod();
                        char getType();
                        int getX();
                        int getY();
                        int getNbRabbit();
                        int getNbFox();
                        int getHauteurHerbe();
                        Herbe* getPos();
     
     
     
                        void vieillir();
                        void setSex(int);
                        void setIfDead(bool);
                        void setEnergy(int);
                        void addEnergy(int);
                        void subEnergy(int);
                        void setIfReprod(bool);
                        char setType(char);
                        void setPos(Herbe*);
     
     
                        virtual void trySeDeplacer(Monde &) = 0;
                        virtual void trySeReproduire(Faune &) =0;
                        virtual void tryManger(Faune &) =0; 
                        };
     
     
     
    #endif // _ANIMAL
    les deux déclarations me sortent l'erreur suivante :

    variable or field `trySeReproduire' declared void
    'trySeReproduire' declared as a `virtual' field
    expected `;' before '(' token

    idem pour virtual void tryManger(Faune &) =0;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    virtual void trySeReproduire(Faune &) =0;
    virtual void tryManger(Faune &) =0;
    Je ne comprends pas parceque la méthode
    virtual void trySeDeplacer(Monde &) = 0;
    elle, ne provoque pas d'erreur...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    on a trouvé la réponse en cherchant bien , faire une pré-déclaration
    class Faune;

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

Discussions similaires

  1. [template] problème de déclaration
    Par kango dans le forum Débuter
    Réponses: 1
    Dernier message: 04/08/2011, 10h42
  2. [VC++ 6] Problème de déclaration de template
    Par Philippe320 dans le forum Langage
    Réponses: 9
    Dernier message: 22/12/2007, 17h57
  3. Problème déclaration classe template
    Par olivier1978 dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2007, 23h43
  4. Réponses: 11
    Dernier message: 29/04/2005, 19h45
  5. Problème de déclaration de segment avec use32
    Par le mage tophinus dans le forum Assembleur
    Réponses: 2
    Dernier message: 10/01/2003, 10h17

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