Comment construire un fichier d'en tête

oussama_hailoula Messages postés 7 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 7 mars 2006 - 5 mars 2006 à 10:22
oussama_hailoula Messages postés 7 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 7 mars 2006 - 7 mars 2006 à 16:17
Bonjour à vous toutes et tous ...

euh ... j'arrive pas à définir des structure et des classes dans un fichier d'en tête .. (j'utilise borland c++ 3.0) .. merci d'avance .. ciao

3 réponses

ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
5 mars 2006 à 12:57
Salut !!

//includes des fonctions dont tu va avoir besoin
#include
...

//Les defines que tu va utiliser
#define PI 3.14f
...

//Les structures (le typedef c'est pour render "compatible" au language C)
typedef struct tag_Point
{
int X;
int Y;
...
} sPoint;

//Les class
class cPoint
{
private:
int X;
int Y;
...
public:
cPoint();
~cPoint();
...
};

//Prototypes des fonctions
int DistPoint(cPoint p1, cPoint p2);
...

Tu enregistre le tout dans un fichier .h (point.h par exemple)

Dans le .c/.cpp ou tu veux utiliser ces class/structures, .... tu fais

#include "point.h"

Si le .h n'est pas dans le meme repertoire que ton .c/.cpp tu doi indiquer le chemin complet ou relatif :
#include "c:\chemin\point.h" //sous windows
#include "/chemin/point.h" //sous Linux

en relatif:
#include "./../includes/point.h"
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
5 mars 2006 à 20:36
petite précision : ton .h peut etre appelé plusieurs fois.
par exemple, si tu a plusieurs fois
#include "point.h"
dans des fichiers differents, a la compile de chaque fichier, il lira le fichier .h, mais au linkage, il te dira que la classe point est redefinie.
pour ce faire, tu as juste a mettre

#ifndef __POINT_H_
#define __POINT_H_

//ton code

#endif

dans ton header, comme ca, la premiere fois quil le lit, le "#ifndef" est faux, donc il declare ton header, et les fois suivantes, il ne le redeclare pas.
0
oussama_hailoula Messages postés 7 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 7 mars 2006
7 mars 2006 à 16:17
merci beaucoup ça marche enfin
0
Rejoignez-nous