Hello,
j'ai écrit plusieurs classes mais dans l'une d'elles, ça me donne des erreurs que je n'arrive pas à résoudre.
Merci
Hello,
j'ai écrit plusieurs classes mais dans l'une d'elles, ça me donne des erreurs que je n'arrive pas à résoudre.
Merci
Salut,
Les erreurs, il est toujours préférable de les gérer dans l'ordre dans laquelle elles apparaissent...
Ne serait-ce parce que l'on assiste souvent à une cascade d'erreurs découlant toutes d'une seule et meme erreur à la base
Dans ton cas, c'est le fait que tu essaye de mettre une définition là où seule une déclaration est autorisée:
Le code
fait, normalement, deux choses:
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector<Personne> listePersonnes(0);
- Déclarer listePersonnes comme étant un vecteur de personne
- réserver(0) éléments de types personnes "defaut construites" dans le vecteur
Or, dans une classe, les membre doivent etre déclarés, mais la définition elle-même doit etre effectuée, comme toujours, au sein d'une fonction (souvent le constructeur, parfois au sein d'un accesseur quelconque)
Supprimes tout simplement la parenthese et le 0 qu'elle contient pour que la déclaration du membre devienne
et tes problèmes seront résolus:
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector<Personne> listePersonnes;
- listePersonnes sera correctement déclaré ==>
- chaque fois que tu voudra accéder à ce membre, le compialteur saura de quoi tu parles
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
Et t'as encore oublié un Vacances:: devant augmenter_taille![]()
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
De plus, mettre un using namespace global dans un fichier d'en-tête est une mauvaise pratique, fortement déconseillée.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
est-ce que tu as vraiment besoin d'avoir une taille? Un des intérêt du vector est qu'il est extensible.
Il faut que tu fasses un vector de pointeurs sur Personne du coup.ainsi que pour mettre des Objets Vacancier dans cette liste.
Vacancier est une classe qui hérite de Personne
Ca implique après d'utiliser des new et de ne pas oublier les delete si c'est la classe qui contient le vecteur qui est responsable de la destruction des personnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::vector< Personne* > personnes;
Dans l'idéal tu utiliserais boost et des smart pointers.
Ben, il faut surtout voir comment tu prévois de gérer ce vecteur...
Soit tu te dis "je ne sais jamais combien de vacancier il va falloir que je gere en meme temps", et, dans ce cas, tu ajoute chaque vacancier par un push_back(vacancier)
Soit tu sais "dés le départ" que tu auras un total de (n) vacanciers, et tu peux demander de redimentionner ton vecteur (par un listePersonnes.resize())
Mais il faut que tu restes logique avec toi meme:
La suite d'instructions du genre de
te fait arriver à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 listePersonnes.resize(100); listePersonnes.push_back(vacancier); listePersonnes.push_back(vacancier); listePersonnes.push_back(vacancier); listePersonnes.push_back(vacancier);
et donc à un total de ... 104 vacanciers...
- 100 vacanciers "défaut construit"
- 4 vacancier "définis" rajoutés
L'avantage des conteneurs de la STL, c'est que, justement, tu n'a pas besoin de t'occuper toi meme de la gestion de la mémoire en suffisance pour maintenir le nombre correct d'éléments...
L'inconvéniant, c'est que tu dois faire appel au fonctions membres existantes pour placer un élément dans le conteneur...
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
Tu devrais vraiment prendre la peine de relire ton code... La moitié des tes erreurs ne sont que des étourderies.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public :
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Partager