Voilà, je galère, je galère sur des choses qui sont simple.
Imaginons 3 classes A, B, C.
C est composé des 2 classes A et B
Comment est ce qu'une fonction membre de A peux utiliser des variables publiques de B?
Exemple de code qui ne marche pas :
main.ccp
C.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <iostream> #include "C.h" using namespace std; C c; int main() { cout << c.b.fonction() << endl; return 0; }
A.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #ifndef C_H_INCLUDED #define C_H_INCLUDED # include "A.h" # include "B.h" class C { private: public: A a; B b; }; #endif // C_H_INCLUDED
A.ccp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #ifndef A_H_INCLUDED #define A_H_INCLUDED class A { private: int x; public: int y; A(); }; #endif // A_H_INCLUDED
B.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 # include "A.h" A::A() { x=2; y=3; }
B.ccp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef B_H_INCLUDED #define B_H_INCLUDED class B { private: int i; public: int j; B(); int fonction(); }; #endif // B_H_INCLUDED
Si quelqu'un pouvait m'expliquer comment faire ça proprement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 # include "B.h" B::B() { i=5; j=7; } int B::fonction() { return(c.a.y); //bien sur ça ne passe pas à la compil car c n'est pas déclaré }
Merci
Partager