FORUM Tom's Hardware » Programmation » C / C++ / Java » problème d'include avec DEV-C++
 

problème d'include avec DEV-C++

108 utilisateurs inconnus
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : problème d'include avec DEV-C++
 
Plus d'informations

Bonjour à tous,
 
C'est la première fois que je poste un message sur ce forum donc je vais essayer d'etre clair dans mes explications.
 
Je programme depuis 3 ans maintenant et j'ai jamais eu de problème, et là j'ai voulu installer Dev-C++.
J'ai un problème au niveau des includes à savoir que je programme en C++.
 
main.cpp

Citation :


#include <iostream>
#include "cl_date.h"

 
int main()
{
 //
}
 


 
cl_date.h

Citation :


#ifndef cl_date.h
#define cl_date.h

 
//DECLARATION
class cl_date {
       
private:
int jj;
int mm;
int aa;
 
public:
cl_date(); //Constructeur
 
int jour() const; //retourne ke jour de la date
int mois() const; //retouren le mois de la date
int annee() const; //retourne l'année de la date
void MAJ(int x,int y,int z); //met à jour la date cible avec le jour , le mois et l'année passés en paramètre
bool operator == (const date & );
bool operator < (const date & );
bool operator > (const date & );
 
 
};
#endif    


 
lorsque je compile il m'affiche ces messages d'erreurs là:

Citation :


2 D:\Mes Documents\EFFICOM\c++\test2\main.cpp In file included from main.cpp  
1:16 D:\Mes Documents\EFFICOM\c++\test2\cl_date.h [Warning] extra tokens at end of #ifndef directive  
2:16 D:\Mes Documents\EFFICOM\c++\test2\cl_date.h [Warning] ISO C requires whitespace after the macro name  
2 D:\Mes Documents\EFFICOM\c++\test2\main.cpp In file included from main.cpp  
5 D:\Mes Documents\EFFICOM\c++\test2\cl_date.h expected identifier before '.' token  
5 D:\Mes Documents\EFFICOM\c++\test2\cl_date.h expected unqualified-id before '.' token  
5 D:\Mes Documents\EFFICOM\c++\test2\cl_date.h expected `,' or `;' before '.' token  
 D:\Mes Documents\EFFICOM\c++\test2\Makefile.win [Build Error]  [main.o] Error 1  


 
la première ligne d'erreur m'indique la ligne ou est ecrit: #include "cl_date.h"
 
Je ne comprend pas, avec les autre logiciel ça fonctionne et pas avec celui là.
Je suis allé voir dans les options, mais j'ai rien vu.
Aidez moi s'il vous plait

Profil : Pointeur
Plus d'informations

balise [code] stp :o

Profil : Pointeur
Plus d'informations

pas de . dans ton #define :o

Plus d'informations

Désolé pour les balises je savais pas.
J'ai enlever le . dans mon define mais c'est pareil.
 
Moi je me demande si ça ne viens pas du logiciel Dev-C++ qui lorsqu'il compile inclue automatiquement les fichiers du projet??
Car lorsque je ne met pas le
 

Code :
  1. #include "cl_date.h"


 
il ne met plus d'erreur, mais lorsque je veux utilisé une fonction de ma classe cl_date, il me met:
 

Citation :

13 D:\Mes Documents\EFFICOM\c++\test2\main.cpp `cl_date' undeclared (first use this function)


 
exemple:
main.cpp

Code :
  1. #include <iostream>
  2. //#include "cl_date.h"
  3. int main()
  4. {
  5.    
  6.     int a = cl_date->mois();
  7.    
  8. }


 
cl_date.h

Code :
  1. #ifndef cl_date_h
  2. #define cl_date_h
  3. //DECLARATION
  4. class cl_date {
  5.      
  6. private:
  7. int jj;
  8. int mm;
  9. int aa;
  10. public:
  11. cl_date(); //Constructeur
  12. int jour() const; //retourne ke jour de la date
  13. int mois() const; //retouren le mois de la date
  14. int annee() const; //retourne l'année de la date
  15. void MAJ(int x,int y,int z); //met à jour la date cible avec le jour , le mois et l'année passés en paramètre
  16. bool operator == (const date & );
  17. bool operator < (const date & );
  18. bool operator > (const date & );
  19. };
  20. #endif


 
cl_date.cpp

Code :
  1. #include "cl_date.h"
  2. cl_date::mois() const
  3. {
  4.     return mm;               
  5. }


 
Pour moi, c'est un problème avec le logiciel Dev-C++, enfin je pense car je vois pas trop d'erreur

pourquoi faire cent fois la même chose ?
Plus d'informations

c'est normal que tu obtienne une erreur si tu utilise une fonction non déclarée.
 
sinon dans ta surcharge d'opérateur tu utilise un type ''date'' tout court ...
 
et

Code :
  1. int a = cl_date->mois();

ne peut pas marcher : cl_date est une classe mais pas une instance.


Message édité par Batchy le 18-03-2007 à 13:28:14
Plus d'informations

Tu veux dire quoi par fonction non déclaré, le faite que j'ai mit en commentaire mon : #include "cl_date.h"??

pourquoi faire cent fois la même chose ?
Plus d'informations

le fait que le compilateur arrive à une ligne qui contient ''cl_date'' et qu'il ne sait pas qu'est ce que c'est ''cl_date'', vu que tu à mis en commentaire le #include .

Plus d'informations

Donc au final, je dois faire quoi pour que je puisse utiliser ma fonction mois() par exemple dans mon main?

Plus d'informations

Si j'ai mit le include en commentaire c'est parce qu'il me metté ce message là:
 
2 D:\Mes Documents\EFFICOM\c++\test2\main.cpp In file included from main.cpp  
 
Et moi je me suis dit que peut-etre que le logiciel Dev-C++ en compilant inclue directement les bibliothèques donc qu'il ne faut pas rajouter de include.
 
Donc si je doit laisse le include comment je fais pour résoudre ce message d'erreur, ça ne serait pas une config de Dev-C++?

Profil : Pointeur
Plus d'informations

bha tu doit instancier ta classe
 
il serait peut etre interressant de revoir tes cours :o

pourquoi faire cent fois la même chose ?
Plus d'informations

la ligne que tu indique n'est pas une erreur, ça ne fait que indiquer par quel ''chemin'' il est passé pour arriver au fichier cl_date.h.
 
avant d'appeler les fonction qui vont bien il faudrai déjà corriger le .h ...

Code :
  1. bool operator == (const date & );
  2. bool operator < (const date & );
  3. bool operator > (const date & );


t'a pas oublier de remplacer date par cl_date ?
 
pour utiliser ta fonction cl_date::mois(), faut déjà travailler sur une vraie instance :

Code :
  1. cl_date MonInstanceClDate();
  2. int a=MonInstanceClDate.mois();


Plus d'informations

Merci beaucoup Batchy,
 
Tu as raison le problème venait de mes operateurs.
Je ne savais pas que ça n'était qu'une indication et non  une erreur, car moi il me l'affiché comme une erreur.
 
Après pour le reste je vais me débrouillé merci encore


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » problème d'include avec DEV-C++
 

Annonces Google
Publicité