Quando si modella un oggetto con figli è comune includere i figli tramite composizione, come membro della classe genitore. A volte, tuttavia, i bambini devono dire qualcosa al genitore, devono chiamare una funzione del genitore. Come si può ottenere ciò usando C ++? Alcune opzioni sono:
Rendi globale la classe genitore, quindi gli oggetti figlio saranno in grado di chiamare le funzioni membro dell'oggetto genitore.
Iniettare l'oggetto genitore come puntatore o riferimento in ogni oggetto figlio. Quindi, quando il bambino deve dire qualcosa all'oggetto genitore, può sempre farlo perché ha una variabile membro che può usare.
Quali sono altri metodi per farlo? Esiste un modello di progettazione generale o un nome per questo genere di cose?
Nota che sono interessato a idee e soluzioni in C ++ perché i dettagli saranno diversi in altri linguaggi orientati agli oggetti. Ad esempio il punto 2 sopra menziona "puntatori o riferimenti" ed entrambi sono possibili solo in C ++. Il C ++ ha funzionalità linguistiche che non sono presenti in altre lingue, pertanto le implementazioni di una soluzione al problema incorporeranno potenzialmente queste funzionalità linguistiche rendendo la soluzione diversa da ciò che qualcuno potrebbe trovare in un'altra lingua.
delegate
sufficiente un semplice ?