9sber
Messages postés28Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 septembre 2004
-
5 juil. 2004 à 14:59
9sber
Messages postés28Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 septembre 2004
-
6 juil. 2004 à 17:18
Comment s'assurer qu'une classe est compilée avant une autre?
Mon, pb est le suivant.
Je suis sous VC++. J'ai une classe "R" qui hérite d'une classe "A". mais à la compilation de la classe "R", mon compilo n'arrive pas à trouver le compilé de la classe "A", malgrè le include "A.h".
R.h : error C2504: 'A' : base class undefined
Lorsque je remplace entièrement le contenu de ces deux classes (à part l'héritage: class R:public A{...} ), l'erreur reste.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 5 juil. 2004 à 19:09
mets #include "A.h" dans le R.h ...
'R.h : error C2504: 'A' : base class undefined' -> on voit bien que c'est ds R.h que la classe A est inconnue.
a+ ;)
9sber
Messages postés28Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 septembre 2004 5 juil. 2004 à 19:40
Le #include y est déjà!
Le trucs, c'est que ça marchait avant.
Je n'ai apporté des modifs... pas mal.
Ca marche plus.
J'ai restauré l'ancienne version. Ca marche.
J'ai réintéger les classes A.h et R.h de l'ancienne version dans les nouvelles. Re, error C2504.
Je change le projet de dossier. Re same error.
Sous linux, ça compile bien.
Donc pour moi, l'erreur vient du complateur cl- de VC++6, je ne voit que cela?
Etes vous d'accord avec mon interprétation ou avez-vous une solution à mon pb?
C'est en résolvant les problèmes les plus tordus que l'on progresse
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 6 juil. 2004 à 02:42
ben non jpense pas mais bon...
fais build -> clean, et re essaie de compiler on sait jamais...
sinon copie colle ici le code de tes 4 fichiers (A.h, A.cpp, R.h et R.cpp) on va voir.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 6 juil. 2004 à 15:48
class R: public QObject,public A,QPtrList {
Q_OBJECT
c'est koi ta macro Q_OBJECT? essaie d'enlever la ligne la vu que bon... peut etre erreur de syntaxe ds le R.h qui te met une erreur qui n'a pas trop de lien.
sinon jvois pas trop trop ;)
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 6 juil. 2004 à 15:53
essaie d'enlever les déclarations
class A;
class AT;
class EU;
dans le R.h. ces classes ont été déclarées dans les autres .h.
comme ta classe R hérite de plsrs de ces classes, mieux vaut que le compilateur prenne les définitions de ces classes avec leurs membres.