DESESPOIR > Comment on fait des unités ? & Comment on les inclue ? [C] - C++ - Programmation
Marsh Posté le 19-01-2003 à 17:31:45
ce que tu appelles des unités en C/C++, tu fais plusieurs fichier c/c++ avec le code de tes classes & fonctions de dedans, tu fais un fichier de prototype .H (ou .hpp) (qui prototype les classes/fonctions), et partout ou tu en as besoins tu fais un include.
par exemple dans patate.h:
class patate
{
public:
int truc;
fais_des_frites();
};
dans patate.cpp:
#include "patate.h"
patate::fais_des_frites()
{
truc=un_autre;
}
et dans les autres .c/.cpp de ton projet:
#include "patate.h"
main()
{
patate yopla;
yopla.fais_des_frites();
}
Marsh Posté le 19-01-2003 à 17:32:52
enfin je te dis ça, parceque de mémoire, c'est simple sous c++ builder
Marsh Posté le 19-01-2003 à 17:33:08
partie "interface" d'une unit Delphi = un fichier .h en C++Builder
partie "implementation" d'une unit Delphi = un fichier .cpp en C++Builder
Marsh Posté le 20-01-2003 à 15:39:53
bon, avant j'incluais les .c directement, ca marchait bien
la j'ai fait mes .h et je les inclue, ca marche
MAIS
Je pensais qu'on pouvait faire des declarations circulaires grace aux .h, et apparement ca passe pas, il me dit que je redeclare des trucs...
Donc exemple, j'ai 3 unites
UNITE A qui inclue B et C
Mais j'ai besoin d'utilise une fonction de A DANS l'unite C
Je peux pas inclure A dans C, ca merde ca me dit que je redeclare des trucs... donc ?
Marsh Posté le 20-01-2003 à 15:48:33
dans chaque .h tu fais :
#ifndef NOMFICHIERH
#define NOMFICHIERH
(tout le contenu du .h
#endif
Marsh Posté le 20-01-2003 à 16:03:57
ça évite les includes cycliques, ou du moins ça permet d'inclure plusieurs fois les mêmes trucs sans problèmes
Marsh Posté le 23-01-2003 à 03:44:47
-VDV- a écrit a écrit : Ils auraient pas pu faire un system comme en pascal non ? ![]() |
C'est vrai que c'est complètement... préhistorique .
Marsh Posté le 19-01-2003 à 17:09:27
Avec c++ builder 5
Je voudrai decouper mon programme en unites parce que bon, ca va faire gros
Mais franchement je comprend pas le principe...
Ils auraient pas pu faire un system comme en pascal non ?
Bref, c koi la procedure/les trucs particuliers/etc pour le faire ?
Message édité par -VDV- le 19-01-2003 à 17:09:57