[c++] classe et typedef

classe et typedef [c++] - C++ - Programmation

Marsh Posté le 10-03-2005 à 22:26:54    

j'ai un petit probleme de compilation sur une classe concernant une structure defini comme suit :

Code :
  1. // variables et methodes prives
  2. private :
  3.   // variables
  4.   struct UnCouple{
  5.     couple MonCouple; // on definit un couple de carte
  6.     struct couple* suivant; // pointeur sur le couple suivant
  7.   };
  8.   // variable et methodes public
  9. public :
  10.   // variable
  11.   typedef struct UnCouple* Paquet; // on definit un type Paquet qui va pointer sur le haut du paquet
  12.   Paquet MonPaquet ; // paquet de jeu


 
dans mon hpp j'ai la méthode suivante :

Code :
  1. Paquet ajouterCouple(int);


qui a pour but de retourner un objet de type Paquet
 
dans mon cpp j'ai l'équivalent :

Code :
  1. Paquet paquet::ajouterCouple(int MaValeur){
  2.   // declaration d'un paquet de carte
  3.   Paquet PaquetTemp;
  4.  
  5.   return PaquetTemp;
  6. }


 
or à la compilation il me sort :
76 F:\FAC\POO\V2\paquet.cpp syntax error before `::' token  
 
quand je mes la fonction en commentaire dans le cpp il ne m'indique plus d'erreur, ce qui veut donc dire que l'erreur vient du cpp mais pourtant je ne comprends absoluement pas pourquoi  :(


Message édité par lordankou le 10-03-2005 à 22:41:16
Reply

Marsh Posté le 10-03-2005 à 22:26:54   

Reply

Marsh Posté le 10-03-2005 à 22:29:48    

Citation :

syntax error before `::' token


c'est clair non ? Regarde le nom de ta classe et la façon dont tu l'as écris  :ange:

Reply

Marsh Posté le 10-03-2005 à 22:41:01    

justement je ne vois pas le probleme
ma classe s'appelle :
 

Code :
  1. class paquet{


 
est le prototype de ma fonction fait bien référence à cette classe.

Reply

Marsh Posté le 10-03-2005 à 22:43:09    

Je saisis pas

Citation :

Paquet paquet::ajouterCouple


 
Tu renvois un Paquet a partir de ta classe paquet ?

Reply

Marsh Posté le 10-03-2005 à 22:47:07    

bah euh oué je vois pas le problème encore une fois. c'est deux choses distincts puisque Paquet est un pointeur sur une structure et paquet est une classe.
Etant donné que c++ fait la différence entre les majuscules je ne vois pas le problème.
Mais est ce que je peux retourner une variable dont je viens de définir le type dans le hpp ?

Reply

Marsh Posté le 10-03-2005 à 23:27:45    

Oops excuse moi c'était mon moment "boulet" de la soirée et j'espère que c'est fini.
Essaye peut-être

Code :
  1. paquet::Paquet paquet::ajouterCouple(int MaValeur)

Reply

Marsh Posté le 10-03-2005 à 23:41:34    

merci en effet ça marche mieux.
en fait le paquet::Paquet sert à dire à la classe que le type Paquet est défini dans le header de classe paquet ?
(il faut reconnaitre que le nom de ma classe et du type ne sont pas des plus judicieux :D)

Reply

Marsh Posté le 11-03-2005 à 00:44:01    

Oui tout type créé dans une classe doit toujours être préfixé du nom de la classe lorsque tu le saisi en dehors du contexte de classe.
Et pour les noms de classe, structure... c'est bien de faire quelque chose de rapidement compréhensible. Si tu te replonges dans un code au bout de quelques mois, tu apprécieras grandement. Et s'il s'agit d'un projet dont les sources peuvent/doivent être vus par du monde c'est encore plus apprécié.


Message édité par IrmatDen le 11-03-2005 à 00:46:27
Reply

Sujets relatifs:

Leave a Replay

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