Si j'ai une classe Container
qui contient un tas d'objets Component
(similaire au framework UI de Java), est-ce que ce serait un mauvais style/pratique de garder une trace du parent Container
dans chaque Component
? Cela finit par provoquer des problèmes de compilation étranges car le Component
inclut le fichier d'en-tête Container
et vice-versa. Même avec une correction de garde d'en-tête, je finis par devoir déclarer un prototype class Component;
au-dessus de l'en-tête Container
, et de même pour Component
.Est-ce une mauvaise pratique d'utiliser des classes co-dépendantes?
Il semble que vous ayez à passer pas mal de temps pour obtenir une interaction bidirectionnelle entre deux classes. Serait-il conseillé de chercher une autre solution au problème que la co-dépendance "résout" ou est-ce que cette implémentation alambiquée est attendue de C++ et que je devrais juste l'aspirer?
EDIT: Peut-être qu'un contexte/raisonnement aiderait. La raison pour laquelle j'utilise cette co-dépendance est que je dois notifier le parent quand le destructeur d'un enfant a été appelé (afin qu'il puisse être retiré de la liste des enfants), et j'ai aussi besoin d'avoir la position dessinée de l'enfant être relatif à celui du parent.
Merci,
Jengerer
Je retire l'étiquette C, parce que cela est vraiment une question de C++. –
Pas évident pour moi que l'étiquette GUI soit appropriée - laissera à Jengerer de reconsidérer cela. –
Eh bien, les classes 'Component' et' Container' sont pour une interface graphique sur laquelle je travaille en C++. Je suis d'accord que ce n'est pas tout ce qui est nécessaire, cependant. – Jengerer