Salut à tous,
Je ne suis pas encore un expert en POO et je bute sur un problème qui m'empêche pas mal d'avancer. Je souhaite définir quelques objets en static dans une classe principale (class MMain) et pouvoir les utiliser dans d'autres classes. En fait mon doute réside là dedans, peut-on vraiment utiliser des membres static d'une classe dans une autre ?
J'aimerais ne pas avoir à passer mes objets aux constructeurs à chaque fois que j'en ai besoin ailleurs, si static ne me permet pas de faire ça, quelle autre solution est adaptée ?
Voici un petit bout de code pour illustrer mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ---- MMain.h namespace ES { class MMain { public: static MObject *a; static MObject *b; static MObject *c; MBox *box; }; } ---- MMain.cpp namespace ES { // constructeur de MMain MMain::MMain() { MMain::a = new MObject(); MMain::b = new MObject(); MMain::c = new MObject(); box = new MBox(); } }Voilà en gros pouvoir utiliser a, b et c où je veux dans mon programme car ce sont des variables dont j'ai besoin très souvent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ---- MBox.cpp namespace ES { class MMain; // Je mets ça car sinon le compilateur me dit que MMain n'est pas déclaré MBox::MBox() { MMain::a->move(); // Ici erreur de compilation : incomplete type 'ES::MMain' used in nested name specifier } }
Merci d'avance pour votre aide.
Partager