Vous avez des améliorations (ou des corrections) à proposer pour ce document :
je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Simplifions nous C++ : L'interface boost::noncopyable
Trois solutions se proposent à vous pour régler ce problème :
Privatiser le constructeur par copie ainsi que l'opérateur d'affectation.
Redéfinir le constructeur par copie et l'opérateur d'affectation.
Utiliser des Smart Pointers (des pointeurs malins).
Permet de ne pas dupliquer l'information
Gère un compteur de références pour savoir si on doit libérer la ressource pointée.
Boost permet de simplifier la mise en ?uvre de la première solution, via l?interface boost : noncopyable
Dominique Liard - 2013 .. 2016
<numéro>
Notes:
Comme indiqué ci-dessus, dès lors qu'une classe contient un attribut pointé, il est nécessaire de mettre en ?uvre une solution pour éviter les problématiques de désallocations multiples et de fuite mémoire. Trois solutions s'offrent à vous.
Première solution, vous privatisez le constructeur par copie ainsi que l'opérateur d'affectation. Ainsi, vous interdisez de cloner une instance pour le type considéré est donc le problème disparaît. Le type type_info (fichier <typeinfo> C++ ANSI) met notamment en ?uvre cette technique.
La seconde solution consiste à redéfinir le constructeur par copie ainsi que l'opérateur d'affectation. Ces deux redéfinitions doivent garantir de cloner les zones pointées en cas de duplication d'une instance. Voici comment, via cette technique, nous pourrions sécuriser le code précédent.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :