Problème de compilation - C++ - Programmation
Marsh Posté le 01-05-2008 à 21:49:05
forward declaration
Code :
|
Marsh Posté le 01-05-2008 à 22:01:33
Désolé pour ces questions bêtes.
(J'ai pas rêvé Tu avais bien mis un [cpp] ?)
Marsh Posté le 02-05-2008 à 00:36:42
on met un entourage [cpp]...[/cpp] sur le forum (et pas dans ton code) autour du code qu'on met en exemple ici, pour que ca soit joli a l'affichage (ca met des numeros de lignes et de la couleur...)
A+,
Marsh Posté le 02-05-2008 à 12:08:19
D'accord.Merci pour ta réponse.
J'ai un autre problème de compilation maintenant.
J'ai fais comme tu m'as dit pour un autre fichier et j'obtiens l'erreur :
Citation : 'Liste_transitions' is used as a type, but not defined as a |
Voici le code de mes deux fichiers :
etats.h
Code :
|
transition.h
Code :
|
L'erreur est pour la ligne 14 du premier fichier.
Merci d'avance.
Marsh Posté le 02-05-2008 à 12:18:14
Citation : Liste_transitions m_liste_transition; |
Tu utilises un type, Liste_transitions, sans avoir dit au préalable a ton compilo ce que c'était. Normal qu'il rale que tu l'empeche de faire son boulot. Il a pas une boule de cristal pour deviner ce que c'est, Liste_transitions, si tu ne le lui dis pas.
A+,
Marsh Posté le 02-05-2008 à 12:32:12
Pourtant je met le
Code :
|
qui contient la classe Liste_transitions en haut du fichier etat.h .
ça ne suffit pas ?
Marsh Posté le 02-05-2008 à 13:23:57
Si, mais c'est le problème du serpent qui se mord la queue. Quand tu écris :
#include "etats.h"
le compilateur lit ce fichier, qui fait état de la classe Liste_Transition qu'il ne connait pas encore à cet endroit du code, puisque défini en dessous.
Marsh Posté le 02-05-2008 à 13:29:23
Oui, il y a des solutions.
Mais ajouter un extern c'est comme coller un bout de scotch sur une machine à gaz, ça fonctionne mais c'est laid. Prends du recul sur ton code : si tu as des fichiers en-têtes qui s'appellent mutuellement, c'est qu'il y a un sérieux problème de conception.
Marsh Posté le 02-05-2008 à 13:30:35
ça compile en faisant :
Code :
|
à la place d'inclure etat.h
Mais est-ce une bonne solution ?
Encore merci pour la réponse précédente .
Marsh Posté le 01-05-2008 à 21:45:36
Désolé de vous harceler de question mais j'ai un gros projet à rendre (je suis en école d'info) et je ne m'en sors pas du c++.
Voici mon code :
En compilant, j'obtiens l'erreur :
parse error before '(' token sur la ligne "Liste_etats retour_liste_ND(char c);"
J'imagine que c'est parce que la classe Liste_etats est après la classe où se trouve la ligne de code.
J'ai essayé de le mettre dans des autres fichiers .cpp et .h mais ça ne compile pas non plus.
Auriez-vous une solution ?
Merci beaucoup
Message édité par sebdu94 le 01-05-2008 à 21:47:09