Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1202 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] Bool operator <

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] Bool operator <

n°1105717
didier1809
${citation_perso}
Posté le 02-06-2005 à 16:21:13  profilanswer
 

:hello:
 
J'ai un petit problème de compréhension avec cette surcharge :
 
Ma 1e classe :
enreg.h

Code :
  1. bool operator  < (const enreg &e1, const enreg &e2)
  2. {
  3.      return(e1.GetHeure() < e2.GetHeure());   
  4. }


 
GetHeure retourne un objet du type heureRDV.
 
2e classe :
heure.h

Code :
  1. bool operator < (const heureRDV h1, const heureRDV h2)
  2. {
  3.      return( (h1.GetHeure() < h2.GetHeure()) && (h1.GetMinutes()<h2.GetMinutes()));
  4. }


 
Getheure() retourne un objet de type unsigned int, getminutes aussi.
 
Erreur à la compilation :

Didier@didier-principal /home/lab4
$ g++ -o main main.C
In file included from main.C:3:
heure.h: In function `bool operator<(heureRDV, heureRDV)':
heure.h:54: error: passing `const heureRDV' as `this' argument of `unsigned int
 
   heureRDV::GetHeure()' discards qualifiers
heure.h:54: error: passing `const heureRDV' as `this' argument of `unsigned int
 
   heureRDV::GetHeure()' discards qualifiers
heure.h:54: error: passing `const heureRDV' as `this' argument of `unsigned int
 
   heureRDV::GetMinutes()' discards qualifiers
heure.h:54: error: passing `const heureRDV' as `this' argument of `unsigned int
 
   heureRDV::GetMinutes()' discards qualifiers
In file included from main.C:4:
enreg.h: In function `bool operator<(const enreg&, const enreg& )':
enreg.h:133: error: passing `const enreg' as `this' argument of `heureRDV
   enreg::GetHeure()' discards qualifiers
enreg.h:133: error: passing `const enreg' as `this' argument of `heureRDV
   enreg::GetHeure()' discards qualifiers
 
Didier@didier-principal /home/lab4
$


---------------
.
mood
Publicité
Posté le 02-06-2005 à 16:21:13  profilanswer
 

n°1105725
chrisbk
-
Posté le 02-06-2005 à 16:24:16  profilanswer
 

t'as du oublié le const dans ta def de GetHeure()
enfin c'ets pas facile a dire, les messages de gcc etant un peu cryptique, la

n°1105733
push
/dev/random
Posté le 02-06-2005 à 16:26:07  profilanswer
 

surement oui et dans getMinutes() aussi
 
edit: je t'ai vu  :D


Message édité par push le 02-06-2005 à 16:28:05
n°1105741
didier1809
${citation_perso}
Posté le 02-06-2005 à 16:28:17  profilanswer
 

chrisbk a écrit :

t'as du oublié le const dans ta def de GetHeure()
enfin c'ets pas facile a dire, les messages de gcc etant un peu cryptique, la


 
mettre  
 

Code :
  1. unsigned int GetMinutes() const
  2.     {
  3.         return minute;
  4.     };


 
PArce que je vient d'essayer, et ca ne va pas :(


Message édité par didier1809 le 02-06-2005 à 16:28:38

---------------
.
n°1105742
chrisbk
-
Posté le 02-06-2005 à 16:29:28  profilanswer
 

pas getMinute, getHeure
 

n°1105749
push
/dev/random
Posté le 02-06-2005 à 16:31:38  profilanswer
 

chrisbk a écrit :

pas getMinute, getHeure


STFU NOOB

n°1105752
didier1809
${citation_perso}
Posté le 02-06-2005 à 16:32:40  profilanswer
 

chrisbk a écrit :

pas getMinute, getHeure


 
Je l'ai fait pour tous  :o
 

Code :
  1. heureRDV GetHeure() const
  2. {
  3.  return heure;
  4. };


Message édité par didier1809 le 02-06-2005 à 16:33:03

---------------
.
n°1105753
chrisbk
-
Posté le 02-06-2005 à 16:32:40  profilanswer
 


 
FOAD BITCH

n°1105757
push
/dev/random
Posté le 02-06-2005 à 16:33:12  profilanswer
 


FUCKING MORON

n°1105758
chrisbk
-
Posté le 02-06-2005 à 16:33:15  profilanswer
 

didier1809 a écrit :

Je l'ai fait pour tous  :o


 
bin soit t'attends qu'un champollion en herbe passe venir decrypter le truc produit par gcc soit tu nous faxe un peu plus de code, genre les .h

mood
Publicité
Posté le 02-06-2005 à 16:33:15  profilanswer
 

n°1105762
chrisbk
-
Posté le 02-06-2005 à 16:34:06  profilanswer
 

push a écrit :

FUCKING MORON


 
ILL INVOKE TEH MODERATION WRATH UPON YOU SHITHEAD

n°1105769
didier1809
${citation_perso}
Posté le 02-06-2005 à 16:36:53  profilanswer
 

chrisbk a écrit :

bin soit t'attends qu'un champollion en herbe passe venir decrypter le truc produit par gcc soit tu nous faxe un peu plus de code, genre les .h


 
Je voulait pas encombrer inutilement, donc voila les h:
 
heure.h

Code :
  1. #include "includes.h"
  2. using namespace std;
  3. class heureRDV
  4. {
  5. private:
  6. unsigned int heure;
  7. unsigned int minute;
  8. public:
  9.  heureRDV()
  10.  {  };
  11.  ~heureRDV()
  12.  {  };
  13. void encode(int heure2,int minute2)
  14. {
  15.  heure = heure2;
  16.  minute = minute2;
  17. };
  18. unsigned int GetHeure() const
  19. {
  20.         return heure;
  21.     };
  22.    
  23.     unsigned int GetMinutes() const
  24.     {
  25.         return minute;
  26.     };
  27.    
  28.     void setheure(unsigned int heurein)
  29.     {
  30.          heure = heurein;
  31.     };
  32.    
  33.     void setminutes(unsigned int min)
  34.     {
  35.          minute = min;
  36.     }; 
  37. };
  38. //Surcharge de << pour afficher une heure
  39. //est utilisé pour ecrire dans le fichier, l'espace sert
  40. //de séparateur
  41. ostream& operator <<(ostream &os, heureRDV heure)
  42. {
  43.         os<<heure.GetHeure()<<" "<<heure.GetMinutes();
  44.         return os;
  45. };
  46. bool operator < (const heureRDV h1, const heureRDV h2)
  47. {
  48.      return( (h1.GetHeure() < h2.GetHeure()) && (h1.GetMinutes()<h2.GetMinutes()));
  49. }


 
 
enreg.h

Code :
  1. #include "includes.h"
  2. using namespace std;
  3. class enreg
  4. {
  5.   private:
  6.   class date Date1;
  7.   heureRDV heure;
  8.   string type;
  9.   string titre;
  10.   public:
  11.    list<string> PtrTexte;
  12.   public:
  13.     enreg()
  14.     {
  15.  type = " ";
  16.  titre = " ";
  17.  heure.encode(0,0);
  18.  Date1.setDate(2005,01,01);
  19.     };
  20.    
  21.     ~enreg()
  22.     {    };
  23. date GetDate()
  24. {
  25.  return Date1;
  26. };
  27. heureRDV GetHeure() const
  28. {
  29.  return heure;
  30. };
  31. string GetType() const
  32. {
  33.  return type;
  34. };
  35. string GetTitre() const
  36. {
  37.  return titre;
  38. };
  39.    
  40.     //Affiche un enregistrement à l'ecran
  41.     void affichePtr()
  42.     {
  43.      cout<<"Date : "<<Date1.GetJour()<<"/"<<Date1.GetMois()<<"/"<<Date1.GetAnnee()<<endl;
  44.  cout<<"Heure : "<<heure.GetHeure()<<":"<<heure.GetMinutes()<<"\nType : "<<type<<"\nTitre : "<<titre<<endl;
  45.  list<string>::iterator iter = PtrTexte.begin();
  46.  cout<<"Texte : "<<endl;
  47.  unsigned int taille = PtrTexte.size();
  48.  for(unsigned int i = 0; i < taille; i++)
  49.  {
  50.  cout<< *iter <<endl;
  51.  iter++;
  52.  }
  53.     };
  54.    
  55.     void encode_enreg(date mydate, string mtype, heureRDV mheure, string mtitre)
  56.     {
  57.  Date1 = mydate;
  58.  heure = mheure;
  59.  type = mtype;
  60.  titre = mtitre;
  61.     };
  62.     void encode_ligne()
  63.     {   
  64. string a, b;
  65. PtrTexte.erase(PtrTexte.begin(),PtrTexte.end());
  66. int cpt=0,ind;
  67. cin>>a;
  68. ind=a.size();
  69.         //Découpe la ligne en plusieurs ligne de 64char
  70.      while (ind-cpt*64 > 0)
  71.      {
  72.   b="";
  73.  for(unsigned int i=0; (i<64)&&(i<ind-cpt*64); i++)
  74.   b+=a[i+cpt*64];
  75.      cpt++;
  76.         PtrTexte.push_back(b);
  77.      };
  78.     };
  79. };
  80. //Permet de lire un enrgistrement (utilisé lors de la lecture du fichier)
  81. istream& operator >>(istream &is, enreg &enr)
  82. {
  83. date date_main;
  84. unsigned int num,aaaa,mm,jj;
  85. heureRDV mheure;
  86. unsigned int heure,min;
  87. string mtype;
  88. string mtitre;
  89. string donnee;
  90.    
  91. is>>jj;
  92. is>>mm;
  93. is>>aaaa;
  94. date_main.setDate(aaaa,mm,jj);
  95. num = date_main.numberOfDay();
  96. is>>heure;
  97. is>>min;
  98. mheure.encode(heure,min);
  99. is>>mtitre;
  100. is>>mtype;
  101. enr.encode_enreg(date_main,mtype,mheure,mtitre);
  102. is>>donnee;
  103. enr.PtrTexte.push_back(donnee);
  104. while( donnee.size() != 0 && donnee != "#" )
  105. {
  106.  if(donnee.size() != 0 && donnee != "#" )
  107.  {
  108.   is>>donnee;
  109.   if (donnee != "#" )
  110.    enr.PtrTexte.push_back(donnee);
  111.  }
  112. }
  113. return is;
  114. };
  115. bool operator  < (const enreg &e1, const enreg &e2)
  116. {
  117.      return(e1.GetHeure() < e2.GetHeure());   
  118. }


---------------
.
n°1105813
push
/dev/random
Posté le 02-06-2005 à 17:00:39  profilanswer
 

Je crois que je sais, gros boulet que je suis ça m'était arrivé  :D  
 
Dégages ces 2 fonctions de ton header ça n'a rien à faire là, ça doit être mis dans un cpp.
En gros arrêtes de tout foutre dans tes header comme ça et sépare ton code.
 
ostream& operator <<(ostream &os, heureRDV heure)
bool operator < (const heureRDV h1, const heureRDV h2)


Message édité par push le 02-06-2005 à 17:01:07
n°1105890
didier1809
${citation_perso}
Posté le 02-06-2005 à 17:29:00  profilanswer
 

push a écrit :

Je crois que je sais, gros boulet que je suis ça m'était arrivé  :D  
 
Dégages ces 2 fonctions de ton header ça n'a rien à faire là, ça doit être mis dans un cpp.
En gros arrêtes de tout foutre dans tes header comme ça et sépare ton code.
 
ostream& operator <<(ostream &os, heureRDV heure)
bool operator < (const heureRDV h1, const heureRDV h2)


 
 :D , j'avoue, j'avais pas envie de devoir faire un makefile ou de taper tout les noms de fichiers  ...  :ange:  
 
Merci, je teste ca :)


---------------
.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] Bool operator <

 

Sujets relatifs
BOOL pas reconnu sous LINUXClasse abstraite et operator<<
Comportement de operator[] avec [][]surcharger l'operator[] ???
fonction char -> boolproblème avec 'operator type();' : ambiguité
Overlord operator <<, aide svp[PHP] Condition qui marche pas ( BOOL )
Comportement de ostream& operator<<(ostream&, basic_string)C++ operator sans cast
Plus de sujets relatifs à : [c++] Bool operator <


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR