[C++]Aide pour débugguer un programme

sophie -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

à 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;
}
 

3 réponses

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Il manque un : derrière le mot clé public.

Bonne chance
0
sophie
 
Merci car je n'avais pas vu.

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
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Bon alors déjà il y a une mauvaise habitude que tu dois perdre tout de suite. On n'utilise jamais un
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
0