Classe non définie C2504

9sber Messages postés 28 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 14 septembre 2004 - 2 juil. 2004 à 11:36
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 - 21 avril 2006 à 17:07
Salut, mon pb est le suivant à la compilation:

-----------------------------------------------------------------
RegistrationMgr.h(23) : error C2504: 'AppMgr' : base class undefined

-----------------------------------------------------------------
voici la classe 'AppMgr' :

#ifndef APPMGR0_H
#define APPMGR0_H
#include "EndUser.h"
#include "SpokenToUser.h"
class EndUser;
class SpokenToUser;

class AppMgr{
public:
virtual bool createApplication(EndUser* eu, SpokenToUser* stu = 0);
virtual bool freeApplication(EndUser* eu, SpokenToUser* stu = 0);};
#endif //APPMGR0_H

#include "AppMgr.h"
bool AppMgr::createApplication(EndUser* myEndUser,SpokenToUser* stu){
return true;}
bool AppMgr::freeApplication(EndUser* user,SpokenToUser* stu){
return false;}

---------------------------------------------------------------

et maintenant plus interessant, ma classe "RegistrationMgr"

#ifndef REGMGR_H
#define REGMGR_H
#include "AppMgr.h"
#include <qptrlist.h>
#include "Registration.h"
class AppMgr;
class Registration;

class RegistrationMgr: virtual public AppMgr,QPtrList <Registration>{
public:
RegistrationMgr();
~RegistrationMgr();
...}

#include "RegistrationMgr.h"
RegistrationMgr::RegistrationMgr(){
...}
RegistrationMgr::~RegistrationMgr(){
...}

--------------------------------------------------------

Voila.
En fait, je ne comprends pas pourkoi la classe AppMgr n'est pas définie. Si vous avez une idée?

Merci d'avance

5 réponses

theneoiceman Messages postés 78 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 23 avril 2010
2 juil. 2004 à 15:16
D'après moi tu n'as pas besoin de préciser le mot-clé virual lorsque tu déclares AppMgr dans ta declaration de RegistrationMgr.
Mets juste class RegistrationMgr : public AppMgr // etc...

Voila voila

Mess with the best, die like the rest
0
9sber Messages postés 28 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 14 septembre 2004
2 juil. 2004 à 15:18
ok, c'est vrai, mais, ce n'est pas ca. J'ai bien essayé 40 bidouilles, mais...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
2 juil. 2004 à 16:47
Pourquoi réecrire
class AppMgr;
class Registration;
alors que ces classes sont définies dans un autre fichier?
0
9sber Messages postés 28 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 14 septembre 2004
2 juil. 2004 à 17:41
cela permet de déclarer la classe, mais de la définir par la suite. En fait, c'est pour faciliter la compilation. Déclaration de tout, puis définitions des classes.
Ici, c'est vrai que ce n'est pas utile car j'ai le "include". D'ailleurs, je les vire. (c'est une ruse de cowboy que j'ai vu dans QT)

En fait, le pb tourne bien autour de cela. Sous linux, la compilation me dit que le "type de classe de base est incomplet" pour la classe APPMGR. Ce que j'ai compris, c'est qu'au moment de compilé la classe RegistrationMgr, il ne trouve pas la compilation de la classe mère AppMgr.
Pourtant, la déclaration :
class RegistrationMgr: public AppMgr,
via le include devrait amener à compiler cette classe AppMgr, non?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
21 avril 2006 à 17:07
salut j'ai aussi un problem de meme type:


***********


class piko;


calss numb;


class numb{


piko *p;


}


class piko{


numb *p;


}
*************


erreur: class non definie piko <<<<<??? Merci pour votre aide
[s]schow/s[?]
0