|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
[c++/OOP] Due classi che si dovrebbero conoscere a vicenda!!
![]() Vorrei creare una classe, chiamata root che contiene tutte le altre classi del programma. Inoltre ogni sottoclasse dovrebbe avere un puntatore alla classe root per poter di conseguenza accedere a tutte le altre sottoclassi. Ho provato con una dichiarazione anticipata della classe root, ma mi dá errore!!! |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Se una classe deve accedere ad altre classi forse è il caso che il chiamante passi un riferimento a queste classi. La mia personalissima idea che mi sono fatto è che per far comunicare delle classi fra di loro l'unico metodo rispettoso della OOP sia la comunicazione tramite eventi, non si deve maneggiare direttamente un puntatore/riferimento alla classe chiamante, anche perchè questo obbliga il chiamante ad adattarsi alla struttura del chiamato Da quello che scrivi mi sembra che vada rivista l'intera strutturazione del programma. A cosa ti serve una struttura simile? |
|
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ma che vuol dire un puntatore alla classe root?
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Se non stai scherzando quello che intende fare è qualcosa di simile a questo:
Codice:
Root::Root() { Leaf f(this); ... } vector<classes> & Root::GiveMeAllClasses() { ... } Leaf::Leaf(Root * root) { vector<Classes> & classes = root->GiveMeAllClasses(); ... } |
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:29.