PDA

View Full Version : [c++/OOP] Due classi che si dovrebbero conoscere a vicenda!!


stdecden
05-04-2007, 13:19
:mc: É giá da tempo che cerco una soluzione a questo enigma...
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!!!

tomminno
05-04-2007, 15:05
:mc: É giá da tempo che cerco una soluzione a questo enigma...
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!!!

Direi che non è per niente un buona tecnica OOP.

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?

71104
05-04-2007, 15:10
ma che vuol dire un puntatore alla classe root? :huh:

tomminno
05-04-2007, 15:25
ma che vuol dire un puntatore alla classe root? :huh:

Se non stai scherzando quello che intende fare è qualcosa di simile a questo:


Root::Root()
{
Leaf f(this);
...
}

vector<classes> & Root::GiveMeAllClasses()
{
...
}

Leaf::Leaf(Root * root)
{
vector<Classes> & classes = root->GiveMeAllClasses();
...
}

71104
05-04-2007, 16:40
Se non stai scherzando quello che intende fare è qualcosa di simile a questo: non stavo scherzando, solo che in genere si parla di puntatori a oggetti :Prrr: non a classi

tomminno
05-04-2007, 17:22
non stavo scherzando, solo che in genere si parla di puntatori a oggetti :Prrr: non a classi

Effettivamente non avevo fatto caso al grassetto.