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

[c++] Problème d'édition de lien

123_bou
123_bou
Niveau 10
16 octobre 2014 à 21:12:19

Allo !

Je vais essayer de vous expliquer mon problème. J'ai deux classes, une classe Personne qui représente une ... personne et une classe Relation qui possède toutes les relations de la personnes envers d'autre personne.

Relation est un attribut de Personne. (donc #include 'Relation.h')
Relation possède des pointeurs vers des Personnes. (#include 'Personne.h')

Mon problème est que quand je veux compiler, les deux classes ne se reconnaissent plus avec l'erreur :

"Identificateur Personne n'ont reconnu/déclaré" dans Relation.h

Et ceux partout, je me retrouve avec 63 erreurs.

Comment régler ce problème ?

NB : au pire, je peux mettre le code sur pastebin (enfin juste les .h, les cpp servirait pas je pense).

Halcatraz
Halcatraz
Niveau 2
16 octobre 2014 à 21:24:25

Inclusion infinie non ?
Dans Personnage.h, enlève #include "Relation.h",
et mets en dessous des includes class Relation;
Dans Personnage.cpp, rajoute #include "Relation.h"
Normalement ça devrait marcher.

godrik
godrik
Niveau 30
16 octobre 2014 à 21:54:22

PS: C'est un probleme de compilation que tu as. Et pas un probleme d'edition de lien.

Google_Bot
Google_Bot
Niveau 14
16 octobre 2014 à 21:57:42

« NB : au pire, je peux mettre le code sur pastebin (enfin juste les .h, les cpp servirait pas je pense). »

Sachant que ce sont bien les .cpp que tu compiles (et qu'ils incluent les .h, et pas l'inverse) tu as tout intérêt à mettre les .h ET les .cpp .
Un .h ça reste un vulgaire morceau de code susceptible d'être présent dans plusieurs .cpp, ya pas de magie particulière derrière ça.

123_bou
123_bou
Niveau 10
17 octobre 2014 à 00:19:47

Merci beaucoup, ca marche ! :-)

J'ai juste du comprendre rapidement comment fonctionne le forward declaration puis a bien l'appliquer en faite.

123_bou
123_bou
Niveau 10
17 octobre 2014 à 00:20:55

C'est dommage que l'on a vu le prototypage en classe mais pas le forward déclaration de class. :(

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