Implémentation d'une classe dans un header ?

Implémentation d'une classe dans un header ? - C++ - Programmation

Marsh Posté le 27-05-2008 à 15:16:08    

Bonjour,

 

j'aimerai savoir si c'est possible (recommandé) d'implémenter les méthodes d'une classe dans un header ? J'ai vu que généralement on fait un .h pour la classe, et un .cpp pour ses méthodes, mais est-ce qu'on peut tout regrouper dans un .h .... ca se fait ?

 

merci par avance


Message édité par in_your_phion le 27-05-2008 à 15:16:29
Reply

Marsh Posté le 27-05-2008 à 15:16:08   

Reply

Marsh Posté le 27-05-2008 à 19:32:04    

si tu veux tout inliner oui
 
néamoins la plus part des compilateurs modernes font l'optimisation à l'édition des liens, donc le inline dans le header perds de l'interêt.
 
si tu fais une bibliothèque, les méthodes a exporter doivent se retrouver dans un .cpp.
 
d'un point de vue maintenance de code tout avoir dans le header c'est ultra-crade.
 
l'édition des liens va rapidement péter un plomb suivant comment t'as foutu ton header bloatisé.
 
--
 
donc que ce soit d'un point de vue perfs ou qualité de code, essayer de tout mettre en vrac dans un header c'est chiant. (a la limite quelques getters inline dans le cas d'une bibliothèque)

Reply

Marsh Posté le 27-05-2008 à 20:06:53    

ca reste obligatoire pr les classes & fonctions templates néanmoins :o

Reply

Marsh Posté le 27-05-2008 à 20:08:21    

exact

Reply

Marsh Posté le 27-05-2008 à 22:42:21    

ok, merci  :jap: je trouvais un peu inutile de faire pleins de fichiers pour les classes, les méthodes, le main ... mais apparement c'est ze rule :(

Reply

Marsh Posté le 27-05-2008 à 22:57:52    

je peux t'assurer que quand il faut reprendre le projet d'un autre,  
un header et un cpp par classe, nommés comme la classe c'est à des années-lumières plus pratique qu'un gros pataquès avec tout à la queue-leu-leu.

Reply

Marsh Posté le 28-05-2008 à 00:06:11    

bjone a écrit :


d'un point de vue maintenance de code tout avoir dans le header c'est ultra-crade.


 
Devoir écrire tout les prototypes en double et les modifier en double quand y'a modification c'est pas franchement génial comme maintenance quand même :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 28-05-2008 à 01:06:35    

c'est chiant, mais c'est pas si long. et puis visual assist & co.... :D

Reply

Marsh Posté le 28-05-2008 à 08:40:21    

regarde CIMG ... 1 bibliotheque de 1 .h .... de + de 30k lignes ... paye ta maintenance :E

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed