Problème de déclaration... [DEV C++]

Résolu
cs_gorby69 Messages postés 48 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 10 février 2006 - 10 nov. 2004 à 12:16
cs_gorby69 Messages postés 48 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 10 février 2006 - 10 nov. 2004 à 13:35
Bonjour,

J'utilise DEV C++ et j'ai un petit problème de déclaration.

J'ai une classe "noeud" dans laquelle j'instancie une structure "liaision".
Le problème c'est que dans ma structure j'ai un int et justement un noeud.

Après moultes essais et déclarations de prototypes j'ai toujours un problème de déclaration.
Je pense qu'il faut déclarer un prototype de la classe mais je dois me planter.

Voici mon code:

#include
#include <stdlib.h>

class noeud{};

struct liaison{noeud N;int C;};

class noeud{
char *ne;
int cpt_tab_li;
//Tableau pour stocker les liaisons aux autres noeuds
liaison *tab_li[10];
public:
//Constructeur
noeud(char *nom){
int i;
ne=nom;cpt_tab_li=0;
for(i=0;i<10;i++){tab_li[i].N=NULL;tab_li[i].C=0;}
}

//Renvoi le nom du noeud
char *get_ne(){return ne;}

//Fonction d'affichage
void affiche(){
int i;
cout<<"Nom du noeud: "<<ne<<"\n";
cout<<"Dependances vers: ";
for(i=0;i<10;i++){if(tab_li[i]!=NULL){cout<<tab_li[i].N->get_ne()<<" ";}}
cout<<"\n\n";
}

//Ajoute une liaison
void ajout_li(noeud *nouveau,int cout){
tab_li[cpt_tab_li].N=nouveau;
tab_li[cpt_tab_li].C=cout;
cpt_tab_li++;
}

};

int main()
{
noeud A("A");
noeud B("B");
A.ajout_li(&B,2);
A.affiche();B.affiche();

system("PAUSE");
return 0;
}

Merci d'avance...

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
10 nov. 2004 à 12:28
dans la casse noeud, tab_li doit être un tableau simple de liason (pas la peine de faire un tableau de pointeur mais c'est possible):
liaison tab_li[10];

dans la structure liaison, il faut un pointeur sur un noeud :

struct liaison
{
noeud* N;
int C;
};

comme la classe noeud est définie après, il faut faire une prédéclaration de la classe avant la structure liaison :
class noeud;

dans la fct affichage, il faudra tester le membre N de la structure liaison et appeler la fct get_ne si non NULL
3
cs_gorby69 Messages postés 48 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 10 février 2006
10 nov. 2004 à 12:37
Merci!

En fait je déclarais mon prototype avec les accolades: class noeud{};

Les autres erreurs résulataient du fait que je stockais directement mes noeuds dans mon tableau tab_li avant de créer une structure et j'avais pas encore finis de modifier mon code...

Merci encore
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2004 à 12:45
gorby69 > j'ai rectifie mais je t'informe pour la prochaine fois, priere d'attribuer 'Reponse acceptee' a celui qui l'a donnee, merci.

ciao...
BruNews, MVP VC++
0
cs_gorby69 Messages postés 48 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 10 février 2006
10 nov. 2004 à 13:35
Ok autant ppour moi...
0
Rejoignez-nous