cs_MATHIS49
Messages postés368Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention14 mai 20101 17 déc. 2005 à 01:00
Merci de m'aider !
En fait jessai de faire mumuse avec une methode virtuel auquel jaccede via un pointeur qui est stocké dans un objet.
J'ai mis mes sources dans un rar , ca sera plus simple pour vous pour tester !
Ne vous inquietez pas le projet est tout petit !
In file included from a.h:4,
from main.cpp:6:
perso.h:13: error: ISO C++ forbids declaration of `A' with no type
perso.h:13: error: expected `;' before '*' token
In file included from main.cpp:6:
a.h:9: error: an anonymous union cannot have function members
a.h:12: error: abstract declarator `' used as declaration
a.h:12: error: namespace-scope anonymous aggregates must be static
In file included from main.cpp:7:
b.h:9: error: expected class-name before '{' token
b.h:9: error: an anonymous union cannot have function members
b.h:12: error: abstract declarator `' used as declaration
b.h:12: error: namespace-scope anonymous aggregates must be static
main.cpp: In function `int main()':
main.cpp:19: error: 'class perso' has no member named 'ptra'
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 17 déc. 2005 à 11:54
-Tu fais un #define A, puis ensuite un class A{...}
Ici, il va remplacer le A par rien, donc au lieu de #define A, mets plutot #define A_H par exemple
-Idem pour la classe B
-Dans perso.h, A n'est pas connu. Tu dois donc déclarer (seulement déclarer) la classe A, en ajoutant class A; avant class perso{...}
-Enfin dans perso.cpp, il te faut #include "b.h"
cs_MATHIS49
Messages postés368Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention14 mai 20101 17 déc. 2005 à 13:11
Merci enormement ! j'ai pas trop compris le coup du define qui remplace le A, mais je pense que je connais pas assez le fonctionnement de define, je vais aller me documenter.
Merci beaucoup !
Vous n’avez pas trouvé la réponse que vous recherchez ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 17 déc. 2005 à 13:28
#define x y
définit x, et le remplace partout par y
#define x
définit x, et le remplace partout par rien. Donc ton class A{...};
devient un class {...};
C'est pour ca que le compilo te parle de "anonymous union"
cs_MATHIS49
Messages postés368Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention14 mai 20101 17 déc. 2005 à 14:49
oui, mais javais marqué " #ifndef A ,#define A" ca veut pas dire que si A est pas defini on le defini par A ?
sinon tu mas donc conseillé de mettre #define A H ou #define A_H
?
Merci
Note : je débute en c++
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 17 déc. 2005 à 14:56
#define A_H, ou n'importe quoi mais surtout pas A
Quand tu fais #define A, tu définis à, mais tu dis juste que A est défini (ca existe), mais ca ne vaut rien. Pour empêchez l'inclusion multiple par exemple ca suffit.
Fais donc exactement ce que je t'ai dit dit plus haut, et ca devrait aller