Communication entre classes
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:
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:
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:
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:
1 2 3 4 5 6 7
|
# include "A.h"
A::A()
{
x=2;
y=3;
} |
B.h
Code:
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:
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