Pollux
:
- que contient _data ? pkoi est-ce que tu utilises malloc() et pas new() pour le créer ?
Pourquoi pas?

Si
malloc lui convient, il peut l'utiliser.
- et tu utilises trop de pointeurs... Pourquoi "std::string *" et pas "const std::string &" ?
Peut-être parce qu'un pointeur est plus facile à comprendre qu'une référence constante?
Kevin> operator= n'a pas besoin d'être surchargé, en général...
Si! Réfléchis un peu! Tu en as besoin pour exactement la même raison que le constructeur de copie: si tu as des pointeurs allouées à l'extérieur, tu ne peux pas seulement copier les pointeurs, tu dois aussi copier les contenus, et le langage C++ ne fait pas ça pour toi. Et tu dois aussi désallouer les anciens pointeurs avant d'écrire les nouveaux par dessus.
nitro :
De plus :
- NULL n'existe pas en C++, on utilise 0
Faux.
NULL existe en C++ est est défini dans
cstddef/
stddef.h.