Lors de la modélisation d'un objet avec des enfants, il est courant d'inclure les enfants via la composition, en tant que membre de la classe parent. Parfois, cependant, les enfants doivent dire quelque chose au parent, ils doivent appeler une fonction du parent. Comment cela peut-il être accompli en utilisant C ++? Certaines options sont:
Rendez la classe parente globale donc les objets enfants pourront appeler les fonctions membres de l'objet parent.
Injectez l'objet parent en tant que pointeur ou référence dans chaque objet enfant. Ensuite, lorsque l'enfant a besoin de dire quelque chose à l'objet parent, il peut toujours le faire car il a une variable membre qu'il peut utiliser.
Quelles sont les autres méthodes pour ce faire? Existe-t-il un modèle de conception général ou un nom pour ce genre de chose?
Notez que je suis intéressé par les idées et les solutions en C ++ car les détails vont être différents dans d'autres langages orientés objet. Par exemple, le point 2 ci-dessus mentionne des «pointeurs ou références» et les deux ne sont possibles qu'en C ++. C ++ a des fonctionnalités de langage qui ne sont pas présentes dans d'autres langues, par conséquent, les implémentations d'une solution au problème incorporeront potentiellement ces fonctionnalités de langage, ce qui rend la solution différente de ce que quelqu'un pourrait proposer dans une autre langue.
delegate
suffirait-il?