IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Effective C++

Date de publication : 10/05/2006 , Date de mise à jour : 27/03/2008

Par Matthieu Brucher (http://matthieu-brucher.developpez.com/) (Blog)
 

Critique d'Effective C++ de Scott Meyers

I. Description de l'éditeur
II. Table des matières
III. Critique : Indispensable
IV. Liens annexes


I. Description de l'éditeur

Une nouvelle édition d'un best-seller. C'est le livre à la pointe sur le marché, le second sur la programmation, un livre que tous devraient posséder.

Scott Meyers est l'un des experts de premier plan sur le développement logiciel en C++. C'est un excellent promoteur de ses livres.

Plus de 50% de matériel neuf et des mises à jour complètes de matériel vrai et essayé afin de l'amener au standard 2005.

Il n'y a aps de meilleur moyen d'amener le programmeur C++ à la pointe des pratiques que ce livre. C'est un classique - le numéro 1 dans son genre.


II. Table des matières

  • GENERIC PROGRAMMING AND THE C++ STANDARD LIBRARY.
    • Item 1: Iterators.
    • Item 2: Case-Insensitive Strings-Part 1.
    • Item 3: Case-Insensitive Strings-Part 2.
    • Item 4: Maximally Reusable Generic Containers-Part 1.
    • Item 5: Maximally Reusable Generic Containers-Part 2.
    • Item 6: Temporary Objects.
    • Item 7: Using the Standard Library (or, Temporaries Revisited).
  • EXCEPTION-SAFETY ISSUES AND TECHNIQUES.
    • Item 8: Writing Exception-Safe Code-Part 1.
    • Item 9: Writing Exception-Safe Code-Part 2.
    • Item 10: Writing Exception-Safe Code-Part 3.
    • Item 11: Writing Exception-Safe Code-Part 4.
    • Item 12: Writing Exception-Safe Code-Part 5.
    • Item 13: Writing Exception-Safe Code-Part 6.
    • Item 14: Writing Exception-Safe Code-Part 7.
    • Item 15: Writing Exception-Safe Code-Part 8.
    • Item 16: Writing Exception-Safe Code-Part 9.
    • Item 17: Writing Exception-Safe Code-Part 10.
    • Item 18: Code Complexity-Part 1.
    • Item 19: Code Complexity-Part 2.
  • CLASS DESIGN AND INHERITANCE.
    • Item 20: Class Mechanics.
    • Item 21: Overriding Virtual Functions.
    • Item 22: Class Relationships-Part 1.
    • Item 23: Class Relationships-Part 2.
    • Item 24: Uses and Abuses of Inheritance.
    • Item 25: Object-Oriented Programming.
  • COMPILER FIREWALLS AND THE PIMPL IDIOM.
    • Item 26: Minimizing Compile-time Dependencies-Part 1.
    • Item 27: Minimizing Compile-time Dependencies-Part 2.
    • Item 28: Minimizing Compile-time Dependencies-Part 3.
    • Item 29: Compilation Firewalls.
    • Item 30: The "Fast Pimpl" Idiom.
  • NAME LOOKUP, NAMESPACES, AND THE INTERFACE PRINCIPLE.
    • Item 31: Name Lookup and the Interface Principle-Part 1.
    • Item 32: Name Lookup and the Interface Principle-Part 2.
    • Item 33: Name Lookup and the Interface Principle-Part 3.
    • Item 34: Name Lookup and the Interface Principle-Part 4.
  • MEMORY MANAGEMENT.
    • Item 35: Memory Management-Part 1.
    • Item 36: Memory Management-Part 2.
    • Item 37: auto_ptr.
  • TRAPS, PITFALLS, AND ANIT-IDIOMS.
    • Item 38: Object Identity.
    • Item 39: Automatic Conversions.
    • Item 40: Object Lifetimes-Part 1.
    • Item 41: Object Lifetimes-Part 2.
  • MISCELLANEOUS TOPICS.
    • Item 42: Variable Initialization - Or Is It?
    • Item 43: Const-Correctness.
    • Item 44: Casts.
    • Item 45: bool.
    • Item 46: Forwarding Functions.
    • Item 47: Control Flow.

III. Critique : Indispensable

Cette critique s'applique à la troisième édition de ce livre (Le C++ efficace), en anglais. Le sous titre est 55 Specific Ways to Improve Your Programs and Designs. 5 éléments ont été apparemment ajoutés.

En fait, le livre a été complètement remanié, par exemple la première partie n'est plus consacrée à la migration C vers C++, mais à l'adaptation au C++ à travers les mots-clés const, les initialisations, ... La difficulté est croissante, les premiers éléments étant très simples à appréhender et à mettre en oeuvre - logique, c'est l'adaptation au C++ - puis on avance vers des terrains de plus en plus minés - qu'est-ce que le compilateur crée comme fonction qu'on ne veut pas forcément, les opérateurs d'assignations, ... -. La partie sur la gestion de la mémoire gagne en complexité et s'applique à toutes les ressources, non plus seulement la mémoire. Les parties dédiées au design et déclaration des classes, leurs implémentations ainsi que l'héritage sont elles aussi pertinentes. Certains éléments des anciennes éditions ont été déplacés dans d'autres sections, d'autres éléments ont été incorporés judicieusement. Une partie dédiée à la programmation générique a été introduite, on va même jusqu'à la méta-programmation. La section consacrée à new et delete est aussi nouvelle et on parle de leur surcharge, ce qui est très intéressant.

Ce livre est maintenant vraiment dédié au C++ et non à la jonction C/C++ comme par le passé. Il est même orienté vers le futur, plusieurs allusions au nouveau standard en discussion sont faites dans tout le livre avec les nouvelles classes apparues dans TR1:: et Boost. Ce livre, dans cette dernière édition, est de nouveau à la pointe, comme il l'a été lors de la première édition, après avoir marqué le pas face aux livres plus récents et plus "C++". Encore un livre à avoir dans sa bibliothèque !


IV. Liens annexes

info Critique sur la page de livres C++
info Achat sur Amazon.fr
info Lien vers le site de l'éditeur


Valid XHTML 1.1!Valid CSS!

Copyright © 2006 Matthieu Brucher. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.