C++ : La sémantique de déplacement

Aborder les bonnes pratiques

Testez gratuitement nos 1255 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
La règle des trois en C++, ou rule of three, concerne les constructeurs copies, les destructeurs et les opérateurs. Cette règle est étendue en C++ 11 pour intégrer la sémantique de déplacement.

Transcription

Maintenant que nous savons mettre en œuvre la sémantique de déplacement, nous pouvons actualiser nos bonnes pratiques. La règle des Trois, en anglais : "The Big Rule of Three", est une règle généralement admise en C++, au moins implicitement, et elle consiste à dire que si vous implémentez au moins une de ces trois méthodes : un destructeur, un constructeur copie ou un opérateur d'affectation, vous devez implémenter les deux autres. Par exemple, si vous avez implémenté un destructeur, il vous faudra implémenter un constructeur copie et un opérateur d'affectation. De la même façon, si vous avez implémenté un opérateur d'affectation, il faudra penser à implémenter un destructeur et un constructeur copie. Et enfin, si vous avez implémenté un constructeur copie, pensez à implémenter un destructeur et un opérateur d'affectation. Bien sûr, chacune de ces méthodes possède une version proposée par défaut par le compilateur. Mais si vous avez besoin de réécrire l'une des trois, la version par défaut des deux autres ne sera sûrement pas suffisante. En fait, on redéfinit souvent une de ces fonctions pour gérer des données complexes ce que ne fait pas le compilateur dans ses implémentations par défaut. Avec la sémantique de déplacement, cette règle des Trois s'étend et elle devient la règle des Cinq. Le raisonnement est le même, mais en y ajoutant le constructeur de déplacement et l'opérateur d'affectation de déplacement. Si vous implémentez l'idiome "copy-swap" comme on l'a vu précédemment, vous rassemblez en une seule méthode les deux opérateurs d'affectation. On peut dire en plaisantant que la règle des Cinq devient la règle des Quatre-et-demi ou la règle des Quatre mais ce terme n'est pas utilisé. En réalité, malgré l'implémentation de l'idiome "copy-swap", l'objet continue à proposer deux fonctionnalités, même si il n'y a qu'une méthode. On continue donc à parler de règle des Cinq. Donc vous pouvez garder maintenant à l'esprit en permanence, lorsque vous écrivez une classe C++, lorsque vous écrivez un destructeur, de penser à rajouter un constructeur copie et un opérateur d'affectation, comme vous le faisiez avant, sauf que cet opérateur d'affectation sera un opérateur d'affectation qui implémente l'idiome "copy-swap", et vous rajouterez aussi un constructeur par déplacement qui vous permettra de tirer parti de tous les avantages de la sémantique de déplacement.

C++ : La sémantique de déplacement

Développez des classes compatibles avec la sémantique de déplacement en C++. Obtenez un code robuste et performant grâce à une utilisation pertinente de la sémantique move.

31 min (10 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :24 oct. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !