foufidou
Messages postés156Date d'inscriptionmardi 31 août 2004StatutMembreDernière intervention21 mai 2015
-
11 déc. 2005 à 16:58
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011
-
12 déc. 2005 à 07:28
salu tout le monde,
je travail sur un projet qui est uen mediatheque (cd + video + livre) biensur c en liste chainé c a dir ke j'ai une liste ki contient elle meme 3 liste chainé pour chacune des categories ( cd ou livre ou video).
j'ai creer 1 class pour chaque categorie ensuite dans la class de ma boite de dialog principale g declaré une structure ki contien des pointeur ki pointe sur chaque liste :
typedef struct LChaine
{
cd *PointeurCD;
livre *Pointeurlivre;
video *Pointeurvideo;
LChaine *Pointeurliste;
}liste;
static liste *gou;
dans cette meme class g fait une allocation memoire pour cette liste
returne true;
}
cette allocation me genre une defaillance c'est que je croit l'allocation est plutot fausse malgré que ca parait etre vrai mais je c pa pkoi ca marche pa.
mon 2eme probleme c que g dautre boite de dialogue par example pour lajout d un livre ou un cd et je voudrai ke ces autres class reconnaissent la structure que je vient de declacré dans la boite de dialogue principale pour pouvoire ajouté les different article dans ma liste chainé !!
foufidou
Messages postés156Date d'inscriptionmardi 31 août 2004StatutMembreDernière intervention21 mai 2015 11 déc. 2005 à 23:52
avant tous merci de ton attention,
le probleme NitRic c que lorske j'ecri "gou" et ke je fai "->" il ne me sort pas la liste des pointeur dans ma structure (PointeurCD...) malgré ke je declaré comme pointeur comme tu me la corrigé "liste * gou" au lieu de "static liste * gou". il les sort seulment kan je fai "." apré "gou"
j'ai ecrit ca dans le initDialog de ma boite de dialogue principale :
BOOL CMediathequeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
gou->PointeurCD = new cd;
gou->PointeurVideo = new video;
gou->PointeurLivre = new livre;
gou->Pointeurliste = NULL;
return TRUE; // return TRUE unless you set the focus to a control
}
lors de la compilation aucune faute, mai apré dans le CMediathequeDlg lorske je fai appel a mes PointeurCD, PointeurVideo et PointeurLivre il ne les connai pa.
et pour le "extern liste * gou" ca donne une erreur de compilation du type :
1/missing ";" befor "*"
2/undeclared identifier
3/illigal indirection
malgré que jai fai mon #include "MediathequeDlg.h" dans le cpp ou g mi "extern..."
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 12 déc. 2005 à 07:28
j'ai pas vraiment tout compris mais, pour ce qui est de ton -> et le
.(point), c'est l'éditeur ca, faut pas trop se 'fier' a ca ...
ton « liste * gou » si tu l'utilise seulement dans ton « CMediathequeDlg », ajoute un attribue a ta classe
class CMediathequeDlg
{
public:
//...
private:
liste * gou;
//...
};
et dans ton « ::OnInitDialog() », je ne vois aucun « gou = new liste; » ... « gou » est un pointeur alors un new ...
pour les erreurs avec le « extern liste * gou; » vérifie que tu as bien
mit ton « gou » en global(hors de toute classe/struct/...) ...
tu mets ca dans le haut d'un fichier .cpp(après les #include par
exemple) et puis dans les autres fichiers .cpp, la tu mets le « extern
liste * gou; » ... sinon, comme j'ai dit plus haut, tu peux mettre ca
dans ta classe « CMediathequeDlg » et même ajouter une méthode pour y
acceder: