Include conflit... [C++] - C++ - Programmation
Marsh Posté le 03-04-2006 à 00:09:33
dans NSControl.H, fais une forward declaration sur NSWindows, et vire l'include nswindows.h
(tes #ifndef / #define sont redondants avec #pragma once)
Marsh Posté le 03-04-2006 à 00:10:01
ReplyMarsh Posté le 03-04-2006 à 00:12:36
chrisbk a écrit : cela dit je trouve ton design assez baroque |
càd à quel niveau ?
Donc j'ai juste fait un class NSWindow; en virant le "NSWindow.h" et ca marche.
Je suis assez étonné car dans ma tête j'avais vraiment besoin de faire l'include de NSWindow pour qu'il puisse identifier le "class NSWindow;" ?
Sinon j'ai viré #pragam once (habitude de mettre ca avec MFC).
Merci
Marsh Posté le 03-04-2006 à 00:46:05
bin non, class NSWindow sert a dire justement "y'a un truc qui s'apelle NSWindow, ca definit une classe. La def exacte, on verra plus tard si besoin", en gros
Marsh Posté le 03-04-2006 à 09:28:05
chrisbk a écrit : tes #ifndef / #define sont redondants avec #pragma once |
Tu peux développer ce point STP?
Ca fait quoi concrètement #pragma once ?
Marsh Posté le 03-04-2006 à 10:07:13
bin ca assure betement qu'un fichier n'est inclu qu'une fois, donc faire pragma once et ensuite utiliser #ifndef/#define derriere pour faire grosso modo la meme chose n'a pas grand interet
Marsh Posté le 04-04-2006 à 00:29:25
chrisbk a écrit : bin ca assure betement qu'un fichier n'est inclu qu'une fois, donc faire pragma once et ensuite utiliser #ifndef/#define derriere pour faire grosso modo la meme chose n'a pas grand interet |
Et qu'est ce qui est mieux à utiliser même si les deux font strictement la même chose ?
Marsh Posté le 04-04-2006 à 00:46:06
les pragma dépendent des compilateurs, alors mieux vaut les éviter pour faire du code portable.
Marsh Posté le 02-04-2006 à 23:18:59
Bonjour à tous,
je suis confronté à un problème de conflit d'include dans la gestion de mes classes.
J'ai deux classes : NSWindow et NSControl
Le programme se présente de cette manière ci :
Maintenant j'aimerais bien placer ma classe NSControl dans un fichier NSControl.h et NSWindow dans un fichier NSWindow.h mais quand je fais cela j'ai plein d'erreurs à la compilation.
Voici l'exemple de ce que je veux faire :
NSControl.h :
NSWindow.h :
Le problème est que comme j'ai déjà inclu NSWindow.h dans le fichier NSControl.h, ca crée des conflits dans NSWindow.h puisque j'include le "NSControl.h" qui contient déjà le NHWindow.h.
Ca me fait des tonnes d'erreurs lorsque je compile !
Y a t'il une solution pour éviter ce conflit ?
Un grand merci