begin process at 2012 05 29 22:43:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme URGENT (merci)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme URGENT (merci)

vendredi 16 décembre 2005 à 23:57:17 | Probleme URGENT (merci)

MATHIS49

Membre Club
Bonjour , j'ai un gros probleme, j'aimerais savoir pourquoi jai un probleme avec ma methode virtuel lors de la compilation  !
Mon script :

/////////////////////////////
class perso {
public:
  perso();
  string nom;
  string prenom;
  A * ptra; 
};

perso::perso()
{
    this->ptra = new B;
    this->nom="dreo";     
    this->prenom="mathieu";     
}
/////////////////////////////
class A
{
   public:
   virtual void methode(perso *);
};

void A::methode(perso * p)
{
   cout<<"NOM : "<<p->nom<<endl;        
}
////////////////////////////////
class B : public A
{
  public:
  void methode(perso *);
};

void B::methode(perso * p)
{
  cout<<"NOM : "<<p->prenom<<endl;   
}
////////////////////////////////

/////////////////////////////////

int main() {
   
  perso * toto = new perso; 
  toto.ptra->methode(toto);
 
  system("PAUSE");
  return EXIT_SUCCESS;
};

samedi 17 décembre 2005 à 00:22:52 | Re : Probleme URGENT (merci)

vecchio56

Administrateur CodeS-SourceS
Tu oublies de préciser quel est ton problème. Une dépendance circulaire?
samedi 17 décembre 2005 à 01:00:35 | Re : Probleme URGENT (merci)

MATHIS49

Membre Club
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 !

Le rar se trouve sur :
[ Lien ]

L'erreur de compilation étant :

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 `<anonymous class>' 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 `<anonymous class>' 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'


MERCI ENCORE
samedi 17 décembre 2005 à 11:54:42 | Re : Probleme URGENT (merci)

vecchio56

Administrateur CodeS-SourceS
-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"

Avec ca, je compile et j'exécute sans problème
samedi 17 décembre 2005 à 13:11:55 | Re : Probleme URGENT (merci)

MATHIS49

Membre Club
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 !
samedi 17 décembre 2005 à 13:28:37 | Re : Probleme URGENT (merci)

vecchio56

Administrateur CodeS-SourceS
#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"
samedi 17 décembre 2005 à 14:49:23 | Re : Probleme URGENT (merci)

MATHIS49

Membre Club

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++
samedi 17 décembre 2005 à 14:56:06 | Re : Probleme URGENT (merci)

vecchio56

Administrateur CodeS-SourceS
#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
samedi 17 décembre 2005 à 15:06:34 | Re : Probleme URGENT (merci)

MATHIS49

Membre Club
merci enormement , grace à toi je rendrais peut etre mon projet a temps !
Merci encore , tu me sauves !


Cette discussion est classée dans : public, methode, probleme, perso, void


Répondre à ce message

Sujets en rapport avec ce message

Question sur l'heritage et classes [ par Darkneon ] Salut,J'aimerai savoir si c'est possible qu'un changement de donnee dans une classe de base affecte les 2 classes heritees?Par exemple :#include &lt Probleme MFC [ par Baygon_Vert ] Voila,je commence a m interesser aux MFC depuis quelques jours, et malgré les heures passées dans la MSDN, je n arrive pas a repondre a un probleme si Probleme sur une methode [ par kild ] Bonjourje desire crée un exe ki execute via le choix de l'utilisateur un autre executable dont g po les sources et ki utilise des commandes en ligne d template [ par dam1234 ] G un probleme avec une methode de classe declaree en template. J'aurai besoin de savoir comment est ce que l'on fait pour connaitre quel a été le type Probleme Argument void* d'une fonction [ par Steph115 ] Bonjour,Pour info je travaille sous Linux en C++ j'ai une fonction definie comme ca : [Code]int ServeurSocket::emmetreSocket(void* trame, int taille){ push_back [ par rems38 ] bonjour,j'ai un programme visual ds lequel il y a :"MixArrayCurr->push_back(*new  TMIX(mixcurr))"cette instruction devait remplacer une autre faite so probleme avec des variable membre public [ par titouf71 ] Bonjour,J'ai un gros probleme avec des variables membres public.J'ai declare une variable membre en public en CString dans ma classe CLecture.Je voudr Probleme MFC exmple tres simple [ par S e e D ] bonjour, en rencontrant un prob dans un de mes devellopement qui fonctionne avec du MFC je me suis fait un code des plus simple pour verifier le bon f Probleme thread linux ... [ par Tidam ] Voila mon probleme, quand je ve compiler il me sort une erreur : passing `void (*)(void *)' as argument 3 of `pthread_create(pthread_t *, const pthrea probleme de sérialisation d'une CList. [ par bwoufy86 ] Voila je developpe une petit base en c++ ou je veux mémoriser une liste chainées ( CList) mais j'ai des soucis dans la sérialisation.Je n'arrive pas a


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales