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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] pb avec un return d une fonction dans une class

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] pb avec un return d une fonction dans une class

n°611336
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 03:40:45  profilanswer
 

Code :
  1. class Cl_date
  2. //============
  3. {
  4. public :
  5. ...
  6. int nb_jour (int const date_d, int const date_f)
  7.   {
  8.   nb_jour = 0;
  9. ...
  10.   return nb_jour;
  11.   }
  12. };
  13. void main ()
  14. //=======================================================
  15. {
  16. Cl_date date ();
  17. ...
  18. int date_d ;
  19. date_d = date.nb_jour (date_d,date_f);
  20. }
  21. }

 
il me met : "error C2228: left of '.nb_jour' must have class/struct/union type"???
qlq peut il m aidé plzzz car la je pete un plomb depuis + de 3 h

mood
Publicité
Posté le 14-01-2004 à 03:40:45  profilanswer
 

n°611344
Taz
bisounours-codeur
Posté le 14-01-2004 à 07:14:44  profilanswer
 

t'as pas l'impression d'avoir 26 bordels qui s'appellent pareil ?
 
et c'est int main
 
et tu peut faire directement l'initialisation de ton int

n°611364
Kristoph
Posté le 14-01-2004 à 08:54:38  profilanswer
 

Et surtout, "Cl_date date();" ne déclare pas une variable mais une fonction :D
 
Ne met pas les parenthèses car ici elles ne servent pas.

n°611379
blackgodde​ss
vive le troll !
Posté le 14-01-2004 à 09:29:22  profilanswer
 

int nb_jour (int const date_d, int const date_f)  
      {  
        nb_jour = 0;
 
>> c quoi ca ? depuis qd une fonction est egale a 0 (a part virtuelle pure)


---------------
-( BlackGoddess )-
n°611541
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 12:48:46  profilanswer
 

Kristoph a écrit :

Et surtout, "Cl_date date();" ne déclare pas une variable mais une fonction :D
 
Ne met pas les parenthèses car ici elles ne servent pas.


 
JE T AIME  :love:  
 
forcement puisque je ne l initialise pas!
thx Kristoph

n°611543
Kristoph
Posté le 14-01-2004 à 12:51:08  profilanswer
 

Effective STL Item 6: Be alert for C++'s most vexing parse.
 
http://www.awprofessional.com/cata [...] CAC842101}

n°611548
Taz
bisounours-codeur
Posté le 14-01-2004 à 12:55:39  profilanswer
 

c'est pas du C++, c'est de la compatibilité de merde avec le C

n°611549
Kristoph
Posté le 14-01-2004 à 12:56:24  profilanswer
 

Comment ça ?

n°611551
Taz
bisounours-codeur
Posté le 14-01-2004 à 12:58:27  profilanswer
 

ben en C vieille mode, on déclarait localement la fonction utilisée. Et le mecs du C cassent toujours les couilles pour des connneries -> faut que ça passe en C++, donc la norme dit que tout ce qui "looks like, tasts likes, sounds like a declaration of a function is one"

n°611556
Kristoph
Posté le 14-01-2004 à 13:02:35  profilanswer
 

Taz a écrit :

ben en C vieille mode, on déclarait localement la fonction utilisée. Et le mecs du C cassent toujours les couilles pour des connneries -> faut que ça passe en C++, donc la norme dit que tout ce qui "looks like, tasts likes, sounds like a declaration of a function is one"


 
En effet. Je connaissais cette règle bizarre, mais je savais pas que c'était pour rester compatible avec le C qu'elle avait été mise en place.

mood
Publicité
Posté le 14-01-2004 à 13:02:35  profilanswer
 

n°611560
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 13:11:36  profilanswer
 

en tout cas merci a vous tous ;)

n°611770
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 17:17:37  profilanswer
 

Code :
  1. char * nom_mois ()
  2. //---------------------
  3. {
  4.  char * A_mois;
  5.  switch (mm) {
  6.   case 1  : A_mois = "Janvier" ;break;
  7.   case 2  : A_mois = "Fevrier" ;break;
  8.   case 3  : A_mois = "Mars" ;break;
  9.   case 4  : A_mois = "Avril" ;break;
  10.   case 5  : A_mois = "Mai" ;break;
  11.   case 6  : A_mois = "Juin" ;break;
  12.   case 7  : A_mois = "Juillet" ;break;
  13.   case 8  : A_mois = "Aout" ;break;
  14.   case 9  : A_mois = "Septembre" ;break;
  15.   case 10 : A_mois = "Octobre" ;break;
  16.   case 11 : A_mois = "Novembre" ;break;
  17.   case 12 : A_mois = "Decembre" ;break;
  18.  }// end switch
  19.  return A_mois;
  20. }


 
le return A_mois c'est bon ? car une fois la fonction nom_mois ()finie il est libéré non ?
 

n°611775
Taz
bisounours-codeur
Posté le 14-01-2004 à 17:31:07  profilanswer
 

Code :
  1. const char * nom_mois ()
  2.   static const char *mois[12]={ ... };
  3.   // vérification de mm  
  4.   // d'ailleurs c'est quoi mm ?
  5.   return mois[mm];
  6. }

n°611875
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 19:56:24  profilanswer
 

mm est une variable privée de ma class ou j y stock un numero de mois entre 1 et 12 compris

n°611876
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 19:57:31  profilanswer
 

pq tu mets static ? dans ce cas ci je vois pas

n°611878
Taz
bisounours-codeur
Posté le 14-01-2004 à 20:02:51  profilanswer
 

quel intérêt du vois à pas le mettre static ?

n°611881
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 20:06:20  profilanswer
 

mouai ok mais je ne vois pas la raison quand meme

n°611885
Taz
bisounours-codeur
Posté le 14-01-2004 à 20:10:20  profilanswer
 

ben c'est un invariant de la classe. ça me suffit comme raison

n°611911
blackgodde​ss
vive le troll !
Posté le 14-01-2004 à 20:37:27  profilanswer
 

char * nom_mois ()
A_mois = "Janvier" ;
 
attention ! on a perdu l'information de constance !


---------------
-( BlackGoddess )-
n°611917
Taz
bisounours-codeur
Posté le 14-01-2004 à 20:39:31  profilanswer
 

d'ailleurs cette fonction peut sans doute être const

n°611994
C H A V E ​Z
Quis custodiet ipsos custodes?
Posté le 14-01-2004 à 22:23:28  profilanswer
 

j'ai aussi un pb avec une fonction que je dois faire. Elle consiste a incrementer ou decrementer une date donnee en parametre par un nombre de jour donné aussi en parametre.
ex : fonction (long int date, int nb_jour )
 
qlq un a t il une idee sur l algorithme?

n°612685
blackgodde​ss
vive le troll !
Posté le 15-01-2004 à 15:43:29  profilanswer
 

comment est codée ta date ? si c'est le nombre de jour depuis le 1er janvier chai pas quoi, il suffit de faire  

Code :
  1. long int result_date = date + nb_jour;


sinon, si c'est en secondes par exemple depuis le 1er jan chai pas quoi, tu fais

Code :
  1. long int result_date = date + nb_jour * 24/*nb heures*/ * 60/*nb min*/ * 60 /*nb sec*/;


etc...

mood
Publicité
Posté le   profilanswer
 


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

  [C++] pb avec un return d une fonction dans une class

 

Sujets relatifs
fonction[Pro*C]recuperer le resultat d'une fonction pl/sql
[C++] [newbiz] Fonction de tirage aléatoire ?Trouver toutes les instances d'un type de class connu
Fonction string sous Interbase[PHP] include et class : petite question
[PERL] Objet et fonction "private"Melange de bbcode et html avec la fonction "nl2br" [résolu]
return !0 en fin de fonction. D'ou viens cette notation ? 
Plus de sujets relatifs à : [C++] pb avec un return d une fonction dans une class


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