Bonsoir à tous !
J'arrive au 4e exo du chapitre 5 de Penser en C++ et j'avoue que je bloque .
Voilà l'énoncé :
Or je ne peut pointer que sur une classe déjà existante : dans mon cas X ne peut pointer sur Y car la déclaration du Y est juste après (et le compilateur râle parce que Y n'est pas encore déclaré).Ecrivez deux classes, chacune ayant une fonction membre qui reçoit un pointeur vers un objet de l'autre
classe. Créez une instance des deux objets dans main( )et appelez la fonction membre mentionnée
ci-dessus dans chaque classe.
Autrement dit : comment faire pour que ces 2 classes puissent causer ensemble ?
Ma question est alors : peut on déclarer simultanément 2 classes pour éviter ce genre de problèmes ?
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 // #4 class X{ //int dataPX; public: int dataX; //void defDataPX(); void voirDataY (Y*); }; /* void X::defDataPX(){ cout << "Valeur de dataPX ?" << endl; cin >> dataPX; } */ class Y{ //int dataPY; public: int dataY; void voirDataX (X*); //void voirDataPX (X*); }; void Y::voirDataX(X* newX){ cout << (*newX).dataX; } /* void Y::voirDataPX(X* newX){ cout << (*newX).dataPX; } */ void X::voirDataY(Y* newY){ cout << (*newY).dataY; } int main(){ cout << "Coucou" << endl; X newX; Y newY; newX.dataX = 42; //newX.defDataPX(); newY.voirDataX (&newX); //newY.voirDataPX()X (&newX); }
Y'a t'il un moyen complètement autre ?
Merci d'avance et Bonne Nuit !
Partager