j'obtiens une erreur de compilation dûe à des conversions de type sur
les arguments 2 et 3 du template d'itération de liste. Y a-t-il une
solution ?
D'autre part, comme les chaînes qui sont placées dans cette classe ne
sont pas censées être modifiées, je préférerais utiliser des
list < const string >, mais dès que j'essaie d'insérer un élément dans
une telle liste, j'obtiens une erreur de compilation :
Ne passe pas. À la réflexion, ça me paraît normal puisque push_back doit
quelque part appeler l'opérateur d'affectation, ce qui ne devrait
jamais avoir lieu dans le cas d'un objet déclaré constant. Cependant,
j'aimerais empêcher la modification des chaînes contenues dans la
liste. Y a-t-il une autre solution qu'encapsuler ces chaînes dans une
classe ne disposant pas de l'opération de modification ?
Le manque de destructeur est dangereux quand on risque de detruire l'objet a partir d'une classe de base. Quand la classe de Dans le cas present ou il s'agit de faire un conteneur avec des contraintes, il me semble evident que si l'heritage est utilise (personnellement, j'aurais tendance a plutot utiliser la delegation que l'heritage) c'est un heritage prive ou protege (sinon les contraintes sont trop facilement contournables). Dans ce cas, d'un heritage prive, les risques qu'on detruise l'objet a partir de la base sont minimes (surtout quand la base n'a aucun membres virtuels).
tout à fait. Et dans mon cas, c'était surtout pour un TD, utiliser un exemple d'héritage privé (les étudiants ont tendance à mettre public pour de l'héritage systématiquement...)
Le manque de destructeur est dangereux quand on risque de detruire
l'objet a partir d'une classe de base. Quand la classe de
Dans le cas present ou il s'agit de faire un conteneur avec des
contraintes, il me semble evident que si l'heritage est utilise
(personnellement, j'aurais tendance a plutot utiliser la delegation
que l'heritage) c'est un heritage prive ou protege (sinon les
contraintes sont trop facilement contournables). Dans ce cas, d'un
heritage prive, les risques qu'on detruise l'objet a partir de la base
sont minimes (surtout quand la base n'a aucun membres virtuels).
tout à fait.
Et dans mon cas, c'était surtout pour un TD, utiliser un exemple d'héritage
privé (les étudiants ont tendance à mettre public pour de l'héritage
systématiquement...)
Le manque de destructeur est dangereux quand on risque de detruire l'objet a partir d'une classe de base. Quand la classe de Dans le cas present ou il s'agit de faire un conteneur avec des contraintes, il me semble evident que si l'heritage est utilise (personnellement, j'aurais tendance a plutot utiliser la delegation que l'heritage) c'est un heritage prive ou protege (sinon les contraintes sont trop facilement contournables). Dans ce cas, d'un heritage prive, les risques qu'on detruise l'objet a partir de la base sont minimes (surtout quand la base n'a aucun membres virtuels).
tout à fait. Et dans mon cas, c'était surtout pour un TD, utiliser un exemple d'héritage privé (les étudiants ont tendance à mettre public pour de l'héritage systématiquement...)