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
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;
}
C.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.h
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
A.ccp
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.h
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
B.ccp
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é
}
Si quelqu'un pouvait m'expliquer comment faire ça proprement.

Merci