En plus du constructeur par copie, vous pouvez fournir un constructeur par déplacement pour votre classe. L'objectif d'un constructeur par déplacement est de voler autant de ressources que possible à l'objet original, aussi rapidement que possible, car l'original n'a plus besoin d'avoir une valeur significative, puisque de toute façon il va sous peu être détruit (ou parfois recevoir une nouvelle valeur). Notez que ce vol est assorti de certaines contraintes. Bien que nous puissions voler les ressources, il nous faut laisser l'objet original dans un état où il peut être correctement détruit ou remplacé par une nouvelle valeur (c'est-à-dire sans déclencher de fuites de mémoire ni de comportement indéfini). Comment implémente-t-on un tel vol ? Faisons-le pour un vecteur (rappelez-vous qu'il est implémenté avec trois pointeurs) :
Partager