More Effective C++
More Effective C++
Résumé :
Introduction
Le livre « More Effective C++ » (souvent traduit en russe par « Более эффективный C++ ») est la suite du célèbre ouvrage de Scott Meyers « Effective C++ », paru en 1992. Si le premier livre a posé les bases d'une utilisation correcte du langage, le second élève encore la barre. Écrit en 1996, il reste pertinent aujourd'hui, en particulier pour ceux qui souhaitent passer du niveau « simple codeur » au niveau « comprenant les mécanismes profonds du C++ ». Le livre se compose de 35 conseils (Items), chacun consacré à un problème ou une technique spécifique. Meyers ne se contente pas d'énumérer des règles : il explique pourquoi elles fonctionnent et fournit des exemples directement applicables dans des projets réels.
De quoi parle ce livre ?
« More Effective C++ » couvre cinq thèmes clés, soit insuffisamment traités dans le premier livre, soit apparus comme de nouveaux défis pour les développeurs :
- Exceptions : comment lever, attraper et gérer correctement les exceptions sans fuites de ressources et en préservant les performances.
- Efficacité : comment écrire du code rapide en évitant les copies inutiles, les objets temporaires et les algorithmes non optimaux.
- Techniques de programmation : astuces avancées telles que les constructeurs virtuels, les pointeurs intelligents, les classes proxy et la double répartition.
- Templates et programmation générique : comment utiliser les templates pour créer des composants flexibles et réutilisables, tout en évitant le gonflement du code.
- Héritage et conception orientée objet : subtilités des fonctions virtuelles, de l'héritage multiple et de la conception correcte des hiérarchies de classes.
Chaque conseil est un chapitre autonome qui commence par un énoncé du problème, propose une solution et se termine par un résumé. Le livre est écrit dans un langage vivant, avec une pointe d'humour et de nombreux exemples en C++.
À qui s'adresse ce livre ?
Le livre est destiné aux programmeurs ayant déjà une expérience du C++ et connaissant les bases du langage : classes, héritage, fonctions virtuelles, templates. Si vous débutez en C++ et n'avez encore réalisé aucun projet, commencez par « Effective C++ » ou tout manuel d'introduction. « More Effective C++ » est l'étape suivante, lorsque vous souhaitez comprendre comment écrire non seulement un code fonctionnel, mais aussi fiable, efficace et facile à maintenir.
Que va apprendre le lecteur ?
Après avoir lu ce livre, vous serez capable de :
- Utiliser correctement les exceptions sans craindre les fuites mémoire et les comportements indéfinis.
- Éviter les objets temporaires et les copies superflues, ce qui est crucial pour les systèmes à hautes performances.
- Implémenter des pointeurs intelligents (smart pointers) et autres idiomes de gestion des ressources.
- Appliquer les templates pour créer des types flexibles et sûrs.
- Comprendre quand et comment utiliser l'héritage multiple, et quand il est préférable de l'éviter.
- Concevoir des classes robustes aux erreurs et faciles à tester.
- Améliorer la qualité globale du code en suivant des pratiques éprouvées.
Points forts du livre
1. Orientation pratique. Chaque conseil est une solution prête à l'emploi pour un problème réel. Vous n'apprenez pas seulement la théorie, mais vous obtenez du code que vous pouvez adapter à vos besoins.
2. Explications approfondies. Meyers ne dit pas « faites ceci parce que je le dis ». Il explique quels mécanismes du langage sont impliqués, quels compromis existent et pourquoi l'approche choisie est meilleure que les alternatives.
3. Pertinence. Malgré son âge, 90 % des conseils restent valables pour les normes modernes du C++11/14/17/20. Certains exemples utilisent des constructions obsolètes (par exemple, auto_ptr au lieu de unique_ptr), mais cela s'adapte facilement. Le livre enseigne à réfléchir, pas à copier aveuglément.