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.