[C++ / VC++] Gros probleme de déclaration de classes :(

Gros probleme de déclaration de classes :( [C++ / VC++] - C++ - Programmation

Marsh Posté le 04-07-2003 à 21:07:12    

:hello:  
 
j'ai un problème pour déclarer mes classes.
les voici :
 
 

Code :
  1. // la classe jForme
  2. // classe virtuelle pure qui va contenir différentes formes
  3. class jForme{
  4. public :
  5.      
  6.      
  7.      
  8. virtual jPoint appartient(int, int, int, int) const =0;
  9.      
  10.      
  11. };
  12. // la classe jPoint
  13. class jPoint:public jForme{
  14. public :
  15.      
  16.      
  17. virtual jPoint appartient(int xClic, int yClic, int zClic, int precis)const{
  18.               // le code de la fonction
  19. }
  20.      
  21.      
  22. };


 
le probleme est que ca ne compile pas.
 
c'est normal pq la déclaration de fonction dans jForme est incorrecte pq il ne connait pas jPoint
 
Cependant si je mets la class jPoint avant la class jForme ca va pas pq jPoint hérite de jForme ...
 
alors comment faire ???
 
help !!
 
 
edit : voilà g viré les ":"  :kaola:


Message édité par camarchepoa le 04-07-2003 à 21:21:17
Reply

Marsh Posté le 04-07-2003 à 21:07:12   

Reply

Marsh Posté le 04-07-2003 à 21:11:58    

c koi cette rimbabelle de : ??
 
ton modele est foireux

Reply

Marsh Posté le 04-07-2003 à 21:14:49    

chrisbk a écrit :

c koi cette rimbabelle de : ??
 
ton modele est foireux


 
bah c pour dire qu'il y a d'autres choses dans les class  :D  :lol:  
 
modele foireux ? il doit bien y avoir un moyen  :fou:

Reply

Marsh Posté le 04-07-2003 à 21:27:27    

ben il y a la solution de déclarer la classe avant

Code :
  1. class Truc;

le problème c'est que tu ne peux utiliser que des pointeurs sinon le compilo à besoin de la déclaration complète pour avoir la taille du type. donc ça ne fonctionnera pas. ton problème, c'est la conception. t'es entrain de bricolé une fabrique. fo que ta fonction renvoie un Base*

Reply

Marsh Posté le 04-07-2003 à 21:32:17    

faudrait peut etre que la fonction retourne quelque chose ?

Reply

Marsh Posté le 04-07-2003 à 21:33:19    


 
je pense que c'est la meilleure solution ...
 
ou sinon il faut que jPoint n'hérite plus de jForme ....  
 
 
:cry:  :cry:  :cry:  :cry:  :cry:  
:cry:    j'ai les boules    :cry:  
:cry:  :cry:  :cry:  :cry:  :cry:  

Reply

Marsh Posté le 04-07-2003 à 21:34:34    

pourkoi? il est ou le problème avec la technique que je viens de t'exposer?

Reply

Marsh Posté le 04-07-2003 à 21:35:17    

jotb a écrit :

faudrait peut etre que la fonction retourne quelque chose ?


 
oui oui elle retourne quelque chose en vrai ... là c juste pour l'exemple, pq si je sort tout le code il y en a pour la nuit  
 
 
et pis apres vous allez me dire que ca c pas bien  :heink: , ca on peut faire mieux  :heink: , mais qu'est-ce-que c'est que cette horreur  :whistle:  :ouch: ...

Reply

Marsh Posté le 04-07-2003 à 21:41:22    

++Taz a écrit :

ben il y a la solution de déclarer la classe avant

Code :
  1. class Truc;

le problème c'est que tu ne peux utiliser que des pointeurs sinon le compilo à besoin de la déclaration complète pour avoir la taille du type. donc ça ne fonctionnera pas. ton problème, c'est la conception. t'es entrain de bricolé une fabrique. fo que ta fonction renvoie un Base*


 
euh ... je comprends pas trop ...
 
il faudra que j'utilise des pointeurs pour quoi ?
pour les données de ma classe ?
oulàlà, comprends pas ...

Reply

Marsh Posté le 04-07-2003 à 21:52:15    

CaMarchePoa a écrit :


 
oui oui elle retourne quelque chose en vrai ... là c juste pour l'exemple, pq si je sort tout le code il y en a pour la nuit  
 
 
et pis apres vous allez me dire que ca c pas bien  :heink: , ca on peut faire mieux  :heink: , mais qu'est-ce-que c'est que cette horreur  :whistle:  :ouch: ...


 
ah ok, mille excuses.  :jap:
 
autre piste : il sert à quoi le virtual devant ta fonction dans JForme ?


Message édité par jotb le 04-07-2003 à 21:53:32
Reply

Marsh Posté le 04-07-2003 à 21:52:15   

Reply

Marsh Posté le 04-07-2003 à 22:00:32    

jotb a écrit :


autre piste : il sert à quoi le virtual devant ta fonction dans JForme ?

:heink: t'es sur de comprendre ce dont on parle ou tu demandes une explication de ce que ça veut dire?

Reply

Marsh Posté le 04-07-2003 à 22:01:00    

jotb a écrit :


 
ah ok, mille excuses.  :jap:
 
autre piste : il sert à quoi le virtual devant ta fonction dans JForme ?


 
c pour dire que dans les classes dérivées il va falloir écrire cette fonction (même prototype) mais adapté à la classe dérivée.
 
ca me permet d'avoir un vector contenant des jFormes et d'appeller cette fonction pour chaque objet du vector sans que je saches de quelle classe dérivée provient l'objet  
cool non ?

Reply

Marsh Posté le 04-07-2003 à 22:06:37    

ben il faut comprendre que le prototypes des fonctions membres doit etre le meme. donc pour le type de retour, on renvoit un pointer Base *. comme ça
 

Code :
  1. Base* Derivée1::f() { return new Derivée1;}
  2. Base* Derivée2::f() { return new Derivée2;}

la foire au polymorphisme en somme

Reply

Marsh Posté le 04-07-2003 à 22:14:21    

++Taz a écrit :

ben il faut comprendre que le prototypes des fonctions membres doit etre le meme. donc pour le type de retour, on renvoit un pointer Base *. comme ça
 

Code :
  1. Base* Derivée1::f() { return new Derivée1;}
  2. Base* Derivée2::f() { return new Derivée2;}

la foire au polymorphisme en somme


 
ooops ... je comprends pas tres bien
 
je pense que c un peu compliqué pour moi  :cry:  
 
bah là je sais pas trop quoi faire  
faut que je trouve comment faire d'autre
 
je vais pas réussir à faire ca c sur :(
 

Reply

Marsh Posté le 04-07-2003 à 22:17:30    


 
je vais finir par devenir dépressif avec cette histoire de projet de M****
 
 :ouch: le pire c que j'aime çà  :ouch:  
 

Reply

Marsh Posté le 04-07-2003 à 22:18:49    

alors arrete de code, trouve toi un bon bouquin et apprend le chapitre sur le polymorphisme et de bonnes révisions sur l'heritage devraient pas te faire de mal

Reply

Marsh Posté le 04-07-2003 à 22:21:58    

++Taz a écrit :

alors arrete de code, trouve toi un bon bouquin et apprend le chapitre sur le polymorphisme et de bonnes révisions sur l'heritage devraient pas te faire de mal


 
c ce que je pense aussi ....
le problème c le temps : projet de fin d'année à finir pour lundi ... dur dur apres 1 semaine d'exams ...
 
et encore heureusement que je m'y étais pris en avance  :sweat:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed