[C++] prédéclaration & inclusions croisées

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [C++] prédéclaration & inclusions croisées

Message  Jhon le Sam 07 Jan 2012, 20:55

Bonsoir,

Ça fait 40min que je tourne en rond donc je m'en remets à vous... J'ai un soucis de prédéclaration. Soit les classes MainUI et Core, les deux possèdent comme attribut un pointeur de l'autre. Comme ce sont des pointeurs, chaque classe peut prédéclarer l'autre, c'est même recommandé. Le code est donc :

MainUI.h :
Code:
class Core;
class MainUI
{
    Core* core;
    ...
}
MainUI.cpp :
Code:
#include "MainUI.h"
#include "Core.h"
...
Core.h
Code:
[b]class MainUI;[/b]
class Core
{
  MainUI* ui;
  ...
}
Core.cpp
Code:
#include "Core.h"
#include "MainUI.h"
...

Problème : Eclipse me donne la ô combien spécifique erreur "forward declaration of 'struct MainUI'" à la ligne mise en gras, ce qui entraîne bien sûr une floppée d'erreur là où je fais ui->...

J'ai comparé avec le projet précédent, où un problème similaire avait été aimablement corrigé par Mr NVS, mais tout concorde, le code est à la bonne place. Sauf que cette fois-ci, ça marche pas...
Du coup, j'ai jeté un œil à mes notes et sur le web, mais les exemples sont avec un pointeur d'un seul côté (et donc il y a prédéclaration dans un sens, mais inclusion dans l'autre). Juste pour être sûr j'ai tenté ça aussi, mais ce n'est guère mieux : si j'inclus du côté Main j'ai la même erreur, et si j'inclus du côté Core j'obtiens "MainUI does not name a type" (à la ligne de déclaration d'attribut).
Connaissant Eclipse, j'ai pensé à faire du clean, mais ça n'a rien changé non plus.


Dernière édition par Jhon le Dim 08 Jan 2012, 19:36, édité 1 fois

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

resolu Re: [C++] prédéclaration & inclusions croisées

Message  nvs le Dim 08 Jan 2012, 00:14

de prime abord, les déclarations anticipées devraient aller... il n'y a pas de méthode inline dans les .h ?





Suspect

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [C++] prédéclaration & inclusions croisées

Message  Jhon le Dim 08 Jan 2012, 01:07

Non, tous les corps sont dans les .cpp.

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

resolu Re: [C++] prédéclaration & inclusions croisées

Message  Jhon le Dim 08 Jan 2012, 19:36

Trouvé, MainUI c'était le nom du fichier, mais la classe portait le nom du projet... Donc déclarer MainUI, ça pouvait pas marcher.

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

resolu Re: [C++] prédéclaration & inclusions croisées

Message  Contenu sponsorisé Aujourd'hui à 20:44


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum