-
Salut,
Ce qui serait intéressant de savoir, c'est si les classes B, C, G et T, respectivement utilisée avec des tableaux pour les membres cer, flux, groupe et ter, ont des comportement polymorphes.
En effet, si ces différents objets ne sont pas polymorphes, et si (cela semble être le cas, si j'ai bien compris :D) la durée de vie de ces objets est gérée par ta classe A, il n'y a, a priori, aucune raison pour les manipuler sous la forme de pointeurs.
En effet, si tu supprimes déjà le recours à des pointeurs pour ces objets, tu rend la copie d'une instance de type A beaucoup plus facile, car la classe vector est parfaitement copiable et assignable.
La deuxième chose qu'il me semblerait bon d'évaluer, c'est d'essayer de déterminer si la classe A, et surtout, la fonction saisirDonnees, n'en font pas un peu trop.
En effet, lorsque je vois qu'une classe dispose, en dehors des formes de Coplien, d'une seule fonction et de... 10 membres, je ne peux m'empêcher de penser que la classe, et très certainement la fonction, ont beaucoup trop de responsabilités :aie:
Enfin, il semblerait intéressant d'évaluer correctement si la classe a effectivement sémantique de valeur.
En effet, cette classe a tout ce qu'il faut pour être utilisée de manière polymorphe, à commencer par un destructeur virtuel, et en continuant par la seule fonction qui ne fasse pas partie des forme de Coplien (saisirDonnees, toujours) qui est, également, virtuelle.
D'après mon expérience, les objets polymorphes ont rarement (jamais :question:) une sémantique de valeur et très souvent une sémantique d'entité, ce qui devrait nous inciter à les rendre non copiables et non assignables. Au mieux, on pourrait envisager de rendre les objets ayant sémantique d'entité clônables ;)
Enfin, bref, tout cela pour dire qu'il serait intéressant de savoir l'utilisation que tu prévois pour ta classe A (et pour toutes les classes associées: B, C, G et T) , car, soit, elles ont sémantiques de valeur, et il est donc vraiment important de réfléchir au meilleur moyen de les rendre copiables et assignables (entre autres, en "virant" tous les pointeurs ;)), soit elles ont sémantique d'entité, et il faut revoir en profondeur la manière dont tu les utilises, car il n'y a sans doute pas lieu de permettre leur copie et leur affectation ;)
-
sinon svp comment faire pour surcharger l'opérateur = pour ma structure
merci de votre réponse
-
@koala1 : j'aurai besoin d'ytiliser les pointeurs pour cette structure