Avant de faire la suite, il faut une classe CharSequence
complète: constructeur par recopie, opérateur d’affectation et destructeur. Dans tous les constructeurs ainsi que dans operator=
et dans le destructeur, vous devez afficher un message, par exemple:
~CharSequence(){
std::printf("%p %s(%d): %s %s\n",this,__FILE__,__LINE__,__func__,_data);
...
ou encore
CharSequence(const CharSequence &s){
std::printf("%p %s(%d): %s %s\n",this,__FILE__,__LINE__,__func__,s._data);
...
De cette manière nous allons pouvoir tracer de manière claire les différents appels d’instanciation et de libération.
NB: la méthode debug()
définie dans le td précédent permet toujours de tracer la valeur de l’attribut _data
.