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

  FORUM HardWare.fr
  Programmation

  [C++] les includes et les define fo les mettre ds le .hpp ou le . cpp?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] les includes et les define fo les mettre ds le .hpp ou le . cpp?

n°80680
maitre_mul​ot
Posté le 11-12-2001 à 19:56:52  profilanswer
 

moi g toujours tout mis ds les includes et les define ds toto.hpp et ds toto.cpp je mets #include "toto.hpp".
mais est-ce vraiment comme ca qu'il fo faire?

mood
Publicité
Posté le 11-12-2001 à 19:56:52  profilanswer
 

n°80687
[SDF]Poire
Vive Grumly
Posté le 11-12-2001 à 20:10:15  profilanswer
 

maitre_mulot a écrit a écrit :

moi g toujours tout mis ds les includes et les define ds toto.hpp et ds toto.cpp je mets #include "toto.hpp".
mais est-ce vraiment comme ca qu'il fo faire?  




Ben oui....
Mais tu fais comme tu veux.....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°80688
maitre_mul​ot
Posté le 11-12-2001 à 20:12:29  profilanswer
 

ca je me doute, mais qu'est est la "norme" pour les define et les includes?

n°80689
godbout
Génial.
Posté le 11-12-2001 à 20:13:20  profilanswer
 

Personnellement quand j'ai un projet dont le nom est toto par exe, dans tous les .cpp je met #include "toto.h"
et dans toto.h je met tous les includes necessaires au bon fonctionnement du prog.
 
Les def de struct aussi dans le h, et les defines ca depend.

n°80693
maitre_mul​ot
Posté le 11-12-2001 à 20:15:03  profilanswer
 

tout ds un seul .h???
je parle en c++ la.

n°80694
godbout
Génial.
Posté le 11-12-2001 à 20:16:56  profilanswer
 

nan pas tout.
mais par exemple pour du C++.
Tu fais une classe NIMP, dans NIMP.cpp j'aurai un #include "nimp.h", et dans NIMP.h j'aurai  
#include <windows.h>
#include <stdlib.h>
 
etc...

n°80696
maitre_mul​ot
Posté le 11-12-2001 à 20:21:42  profilanswer
 

ouais oki je suis d'accord moi je fais comme toi.
mais si tu as nimp.h et nim.cpp
et toto.cpp et toto.h
et que ds ton toto.h t'as un #include nimp.h,
c po sur que les includes de ton nimp.h soit necessaires a toto.
ceci pour dire que je me demande si ds les .h fo po mettre ce qui est visible par les autres .h, et mettre ds les .cpp uniquement les trucs necessaires a ton .cpp
 
je suis po sur d'etre clair mais bon

n°80697
godbout
Génial.
Posté le 11-12-2001 à 20:27:31  profilanswer
 

maitre_mulot a écrit a écrit :

ouais oki je suis d'accord moi je fais comme toi.
mais si tu as nimp.h et nim.cpp
et toto.cpp et toto.h
et que ds ton toto.h t'as un #include nimp.h,
c po sur que les includes de ton nimp.h soit necessaires a toto.
ceci pour dire que je me demande si ds les .h fo po mettre ce qui est visible par les autres .h, et mettre ds les .cpp uniquement les trucs necessaires a ton .cpp
 
je suis po sur d'etre clair mais bon  




Ben en fait je pense que tu peux faire comme tu veux.
Normalement au debut de chaque .h t'as un #ifndef #define, comme ca si tu inclus deux fois le meme .h ca chie pas.

n°80762
Krueger
tout salaire demande dutravail
Posté le 12-12-2001 à 00:16:19  profilanswer
 

maitre_mulot a écrit a écrit :

ouais oki je suis d'accord moi je fais comme toi.
mais si tu as nimp.h et nim.cpp
et toto.cpp et toto.h
et que ds ton toto.h t'as un #include nimp.h,
c po sur que les includes de ton nimp.h soit necessaires a toto.




 
Tu n'as pas besoin de savoir ce qu'inclut nimp.h pour savoir ce qu'il faut inclure ou non dans toto.h.
Si par exemple nimp.h incluait titi.h et que toto.h avait aussi besoin de titi.h il faudrait quand même inclure titi.h dans toto.h pour être "propre". :) Dans le cas contraire, si un jour tu décidais que nimp.h n'incluais plus titi.h, ben alors ton toto.h il ne compile plus. :crazy:
C'est un exemple tout simple mais avec des dizaines de fichiers à gérer mieux vaut "penser" chacun d'entre eux indépendamment car sinon c'est la galère pour trouver les dépendances indirectes. :D
Tu inclus bien des trucs genre stdio.h ou string.h sans savoir s'ils s'incluent entre eux, non? Ben c'est un peu comme ça qu'il faut voir les choses. ;)
 

maitre_mulot a écrit a écrit :

ceci pour dire que je me demande si ds les .h fo po mettre ce qui est visible par les autres .h, et mettre ds les .cpp uniquement les trucs necessaires a ton .cpp




 
Si un .cpp a besoin d'un .hpp que le .hpp de ce .cpp n'a pas besoin, je mets l'include dans ce .cpp. C'est ce que tu pensais faire?
 

maitre_mulot a écrit a écrit :

je suis po sur d'etre clair mais bon  




 
Mouais moi aussi. :lol: :p

 

[edtdd]--Message édité par Krueger--[/edtdd]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°82088
maitre_mul​ot
Posté le 17-12-2001 à 13:00:51  profilanswer
 

<<Si un .cpp a besoin d'un .hpp que le .hpp de ce .cpp n'a pas besoin, je mets l'include dans ce .cpp. C'est ce que tu pensais faire? >>
 
ouais c ca

mood
Publicité
Posté le 17-12-2001 à 13:00:51  profilanswer
 

n°82094
DLR
Hein c'était quoi la question?
Posté le 17-12-2001 à 13:21:18  profilanswer
 

tu fais comme tu veux tant que tu peux inclure ton .h autant de fois que tu veux avec:
#ifndef __MON_H__
#define __MON_H__
 
class Mon {
...
}
#endif


---------------
Narf... It is broken...
n°82114
LeGreg
Posté le 17-12-2001 à 14:17:57  profilanswer
 

si tu veux etre clean
tu ne mets dans tes .h
que les infos que tu souhaites
partager => interface
et dans .cpp tout ce qui concerne
l'implantation.
 
exemple ton type maclasse est declare avec un membre
qui a besoin d'une declaration externe
 
contenu de maclasse.h:

Code :
  1. #include "declaration1.h"
  2. class maclasse {
  3.   mon_type_externe var;
  4.   ...
  5. };


 
deuxieme solution, tu ne desires pas
inclure cette declaration dans maclasse.h
en fait tu n'en n'as pas besoin si tu
declares var1 comme une reference vers un objet
de type "mon_type_externe".
 
deuxieme implantation de maclasse.h

Code :
  1. // on declare au prealable la classe
  2. // mon_type_externe, ton compilateur s'attend  
  3. // a trouver la definition complete plus tard
  4. class mon_type_externe;
  5. class maclasse {
  6.   mon_type_externe * var;
  7.   ...
  8. };


dans ce cas, des que tu voudras utiliser les  
proprietes et methodes de mon_type_externe
il faudra penser a inclure au prealable "declaration1.h"
 
Si ton souci est la rapidite de compilation
ainsi que l'encapsulation, ne mets dans ton header
que ce qui concerne l'interface et deplace
la partie implantation dans le .cpp
(cela inclut les headers qui ne sont pas
utilises par la definition mais qui sont utiles
au code)
Evidemment il y a des cas ou il faut
faire autrement, notamment quand pour
des raisons d'efficacite, tu veux que les objets
puissent etre entierement locaux et que ses methodes
soient inlines.
(abstraction et performance s'opposent parfois)
 
A+
LEGREG

 

[edtdd]--Message édité par legreg--[/edtdd]


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

  [C++] les includes et les define fo les mettre ds le .hpp ou le . cpp?

 

Sujets relatifs
[C++] Comment mettre un "wait 2 secondes before continue" :-) ?Reprogrammer une image de BIOS pour y mettre un joli Logo
[php]ca marrche comment les includes?ou mettre les fichier .SQL please c très important!!!!!
Quoi mettre ici "facesdir = "../../YaBBImages/avatars";ou mettre les .php et autre pour executer en phpMyAdmin
Comment mettre telle écriture par défaut ?mettre en majuscule un fichier vi ??
Mettre ce code en ASPje voudrais me mettre a la programmation!need conseils!!!!!
Plus de sujets relatifs à : [C++] les includes et les define fo les mettre ds le .hpp ou le . cpp?


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