CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

régle d' inclusion des headers

sn00bino
sn00bino
Niveau 5
02 février 2008 à 19:16:28

lu,

j'ai deux fichiers .h, chaqun à besoin de l' autre. Je fais comment ? Et qu'elle est la régle pour inclure des headers ?

dnob700
dnob700
Niveau 10
02 février 2008 à 19:19:52

"j'ai deux fichiers .h, chaqun à besoin de l' autre. Je fais comment ? Et qu'elle est la régle pour inclure des headers ?"

c'est une erreur de conception. Tu ne peut pas le faire comme ça.

Nevdelothion
Nevdelothion
Niveau 4
02 février 2008 à 20:10:38

Ce n'est pas forcement une erreur de conception , il y a quelque cas dans lesquels tu peut avoir à faire cela un simple exemple :

Mettons que tu fasse un jeu, un element "Player" peut contenir plusieurs entités, et chaque entité peut avoir besoin de savoir à quel "Player" elle appartient.

Dans ce cas on se retrouve avec ca

class Player
{
list<Entite> m_unitList;
}

et

class Entite
{
Player* m_player;
}

Pour repondre à sn00bino dans cette situation tu doit signaler dans l'une des classes que l'autre existe sans pour autant inclure le .h de cette meme classe.
Pour cela il suffit de faire quelque chose comme ca:

//Dans player.h
//Declarer une class entite
class entite;

class Player
{
list<Entite> m_unitList;
}

et

//entite.h

  1. include "player.h"

class Entite
{
Player* m_player;
}

Il faut ensuite inclure entite.h dans player.cpp.

Par contre avant d'appliquer cela à ton probleme tu devrais revoir ta conception car comme l'a dis dnob700 en general cela peut etre evité.

LGV
LGV
Niveau 28
03 février 2008 à 13:16:35

autre approche: forward declarations en plus des include guards, voire "single compilation unit" si ca a du sens avec les fichiers en question

sn00bino
sn00bino
Niveau 5
03 février 2008 à 16:37:40

merci c 'etait bien un probléme de conception

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment