[C++]Aide pour débugguer un programme
Bonjour,
à la compilation de mon programme, j'obtiens les erreurs suivantes :
Je ne sais pas comment les corriger.
Quelqu'un pourrait-il m'aider?
Merci
Les fichiers .cc et .hh
à la compilation de mon programme, j'obtiens les erreurs suivantes :
In file included from Vacances.cc:3: Vacances.hh:16: error: erreur d'analyse syntaxique before `(' token Vacances.hh:10: attention : all member functions in class `Vacances' are private Vacances.cc:7: error: prototype for `Vacances::Vacances(Plage, std::vector<Vacancier, std::allocator<Vacancier> >)' does not match any in class `Vacances' Vacances.hh:10: error: candidates are: Vacances::Vacances() Vacances.hh:10: error: Vacances::Vacances(const Vacances&)
Je ne sais pas comment les corriger.
Quelqu'un pourrait-il m'aider?
Merci
Les fichiers .cc et .hh
#ifndef VACANCES_HH #define VACANCES_HH #include "Plage.hh" #include "Vacancier.hh" #include <vector> using namespace std; class Vacances{ private: Plage plage; vector<Vacancier> listePersonnes; public Vacances(Plage plage, vector<Vacancier> listePersonnes); void lancement_simulation(); }; #endif
#include <iostream> #include <string> #include "Vacances.hh" #include "Glacier.hh" #include "Vacancier.hh" Vacances::Vacances(Plage plage, vector<Vacancier> listePersonnes){ this->plage = plage; this->listePersonnes = listePersonnes; } void Vacances::lancement_simulation(){ //On place les 2 glaciers int colonne1 = plage.hasard(0,NBCOLONNES-1); int heure_arrivee1 = plage.hasard(8,18); int heure_depart1 = plage.hasard(heure_arrivee1,18); Glacier g1(0, colonne1, heure_arrivee1, heure_depart1); int colonne2 = plage.hasard(0,NBCOLONNES-1); int heure_arrivee2 = plage.hasard(8,18); int heure_depart2 = plage.hasard(heure_arrivee2,18); Glacier g2(0, colonne2, heure_arrivee2, heure_depart2); //On ajoute les vacanciers int nbVacanciers = plage.hasard(0,100); for(int j=0; j<nbVacanciers; j++){ int ligne = plage.hasard(0,NBLIGNES-1); int colonne = plage.hasard(0, NBCOLONNES-1); int heure_arrivee = plage.hasard(8,18); int heure_depart = plage.hasard(heure_arrivee,18); Vacancier vacancier(ligne, colonne, heure_arrivee, heure_depart); listePersonnes.push_back(vacancier); //achat glace? bool achat = listePersonnes[j].achat_glace(plage); if(achat == true) listePersonnes[j].choix_glacier(g1,g2,plage); } //Chaque heure des vacanciers viennenent et partent for(int k=9; k<=18; k++){ int nbDeparts = plage.hasard(0, NBLIGNES*NBCOLONNES-plage.getNbPlacesLibres()); int nbArrivees = plage.hasard(0,plage.getNbPlacesLibres()); for(int l=0; l<nbDeparts; l++) listePersonnes[l].depart(plage); for(int m=0; m<nbArrivees; m++) listePersonnes[m].arrivee(plage); } } int main(){ return 0; }
A voir également:
- [C++]Aide pour débugguer un programme
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - Guide
3 réponses
Merci car je n'avais pas vu.
J'ai une autre question.
Dans mon code, j'utilise des :
et mon code fonctionne.
Mais lorsque je remplace Vacancier par Personne, ça me met des erreurs or Vacancier hérite de Personne.
Est-ce que tu pourrais m'indiquer les parties de mon code qu'il me faut modifier pour que mon programme fonctionne lorsque j'utilise
Merci
J'ai une autre question.
Dans mon code, j'utilise des :
vector<Vacancier> listePersonnes
et mon code fonctionne.
Mais lorsque je remplace Vacancier par Personne, ça me met des erreurs or Vacancier hérite de Personne.
Est-ce que tu pourrais m'indiquer les parties de mon code qu'il me faut modifier pour que mon programme fonctionne lorsque j'utilise
vector<Personne> listePersonnes
Merci
Bon alors déjà il y a une mauvaise habitude que tu dois perdre tout de suite. On n'utilise jamais un
dans un .hpp. D'ailleurs moi je n'en utilise jamais (bon c'est vrai que c'est relou du coup tu dois écrire std::vector etc... Mais c'est pratique le jour ou par malheur tu as un objet qui porte le nom de quelquechose qui est dans la STL).
Pour les histoires de vacancier et de personne c'est le contraire. Si tu encapsule un vacancier dans ta classe, alors a fortiori tu peux encapsuler un vacancier... mais pas le contraire !
Bonne chance
using namespace std;
dans un .hpp. D'ailleurs moi je n'en utilise jamais (bon c'est vrai que c'est relou du coup tu dois écrire std::vector etc... Mais c'est pratique le jour ou par malheur tu as un objet qui porte le nom de quelquechose qui est dans la STL).
Pour les histoires de vacancier et de personne c'est le contraire. Si tu encapsule un vacancier dans ta classe, alors a fortiori tu peux encapsuler un vacancier... mais pas le contraire !
Bonne chance