C++ class !

C++ class ! - C++ - Programmation

Marsh Posté le 30-11-2002 à 17:51:17    

Bonjour,
j'ai un pti prob dans ma class Message { .. }; !
dans message.h je defini mes accesseurs:
 
private:
string expediteur;
 
public
string Exp();
 
Dans message.cc:
 
Message::string Exp() { return expediteur; }
 
Mais il me trouve un erreur :/ -> syntax error before `(' token <- a la ligne ou il y a Message::string Exp() !
Pourquoi cette erreur je comprends pas :/ Merci de m'aider.

Reply

Marsh Posté le 30-11-2002 à 17:51:17   

Reply

Marsh Posté le 30-11-2002 à 17:54:18    

L'implémentation d'une méthode doit être :
 
TypeDeRetour Classe::Nom (paramètres)
 
Donc :  
string Message::Exp() { return expediteur; }


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 30-11-2002 à 18:00:43    

Arf merci, quel boulet je suis..... ;)

Reply

Marsh Posté le 01-12-2002 à 02:30:43    

Citation :

dans message.h je defini mes accesseurs


:non: "je déclares"


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 01-12-2002 à 12:11:18    

Musaran> Oui, vous m'avez compris...
 
Une autre question, quand j'inclu la librairie <vector.h> j'ai bien le droit de creer des iterator ?
 

Code :
  1. iterator i;

?
 
Car ca me marque: iterator undeclared :/ je comprends pas !
 

Reply

Marsh Posté le 01-12-2002 à 12:33:24    

1- c'est <vector>
2- ils sont dans le namespace std, donc soit c'est std::iterator, soit tu spécifie "using namespace std;"


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-12-2002 à 12:56:47    

J'ai testé mais ca ne marche toujours pas...
 
Voila ma fonction:
 

Code :
  1. #include <vector(.h)> // avec ou sans c pareil !
  2. using namespace std;
  3. void Boiteauxlettres::Del(int j)
  4. {
  5.   iterator i;
  6.   for (i=msg.begin();i!=msg.end();i++)
  7.   {
  8.      if (i==j) cout<<"test";
  9.   }
  10. };


 
Quand je fais ca il me dit: iterator undeclared !
 
Si je rajoute std:: devant iterator -> std::iterator i; il me dit: parse error before ';' // a la ligne ou ya std::iterator i; !!
 
Pourquoi ce ne marche donc pas ?  :??:

Reply

Marsh Posté le 01-12-2002 à 13:04:15    

Essaye plustot vector<int>::iterator i

Reply

Marsh Posté le 01-12-2002 à 13:06:57    

Kristoph a écrit a écrit :

Essaye plustot vector<int>::iterator i




 
Nop ca ne marche pas !!

Reply

Marsh Posté le 01-12-2002 à 16:10:22    

Avec gcc 2.96, ceci marche très bien chez moi :
 

Code :
  1. #include <iostream>
  2. #include <vector>
  3. void main()
  4. {
  5.     vector<int> l;
  6.     std::vector<int>::iterator i;
  7.     for (i=l.begin();i!=l.end();i++) 
  8.     {
  9.         if (*i==5) cout<<"test";
  10.     }
  11. }


 
PS : on ne met pas de ; à la fin de la déclaration d'une fonction.

Reply

Sujets relatifs:

Leave a Replay

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