Participer au site avec un Tip
Rechercher
 

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 :

Accès rapide :






Vous êtes un professionnel et vous avez besoin d'une formation ?

Programmation C++
Les compléments


Voir le programme détaillé
ESN Inovelya : Nous recrutons

Simplifions nous C++ : L'interface boost::noncopyable


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.

IntVector::IntVector( const IntVector &v ) {

this->array = NULL;

*this = v;

}

Diapositive précédente Diapositive suivante
Vous êtes un professionnel et vous avez besoin d'une formation ? Design Patterns
en C++
Voir le programme détaillé