Le langage C++
17 livres et 13 critiques, dernière mise à jour le 14 octobre 2022 , note moyenne : 4.1
- Tour of C++ - A (C++ In-Depth Series)
- Le guide du C++ moderne - De débutant à développeur
- Professional C++
- Modern C++ Programming Cookbook - Master C++ core language and standard library features, with over 100 recipes, updated to C++20
- C++ Primer
- The C++ Programming Language
- Professional C++
- Minimanuel de C++ - Cours et exos corrigés
- Le langage C++
- Le langage C++ - Le livre d'initiation pour C++
- La Bible C++
- Programmation - Principes et pratique avec C++
- Accelerated C++: Practical Programming by Example
- C++ en action
- Le Langage C++ - Initiez-vous à la programmation en C++
- Apprendre le C++
- Programmez avec le langage C++ - Toute la puissance du langage C++ expliquée aux débutants
Tour of C++
A (C++ In-Depth Series)
Résumé de l'éditeur
Stroustrup presents C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, emphasizing newer language features. This edition covers many features that are new in C++20 as implemented by major C++ suppliers, including modules, concepts, coroutines, and ranges. It even introduces some library components in current use that are not scheduled for inclusion in the standard until C++23.
This authoritative guide does not aim to teach you how to program (for that, see Stroustrup's Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you'll need for C++ mastery (for that, see Stroustrup's The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you won't find a shorter or simpler introduction.
Édition : Addison-Wesley Professional - 320 pages, 3e édition, 10 octobre 2022
ISBN10 : 0136816487 - ISBN13 : 9780136816485
1.1 Introduction
1.2 Programs
1.3 Functions
1.4 Types, Variables, and Arithmetic
1.5 Scope and Lifetime
1.6 Constants
1.7 Pointers, Arrays, and References
1.8 Tests
1.9 Mapping to Hardware
1.10 Advice
Chapter 2: User-Defined Types
2.1 Introduction
2.2 Structures
2.3 Classes
2.4 Enumerations
2.5 Unions
2.6 Advice
Chapter 3: Modularity
3.1 Introduction
3.2 Separate Compilation
3.3 Namespaces
3.4 Function Arguments and Return Values
3.5 Advice
Chapter 4: Error Handling
4.1 Introduction
4.2 Exceptions
4.3 Invariants
4.4 Error-Handling Alternatives
4.5 Assertions
4.6 Advice
Chapter 5: Classes
5.1 Introduction
5.2 Concrete Types
5.3 Abstract Types
5.4 Virtual Functions
5.5 Class Hierarchies
5.6 Advice
Chapter 6: Essential Operations
6.1 Introduction
6.2 Copy and Move
6.3 Resource Management
6.4 Operator Overloading
6.5 Conventional Operations
6.6 User-Defined Literals
6.7 Advice
Chapter 7: Templates
7.1 Introduction
7.2 Parameterized Types
7.3 Parameterized Operations
7.4 Template Mechanisms
7.5 Advice
Chapter 8: Concepts and Generic Programming
8.1 Introduction
8.2 Concepts
8.3 Generic Programming
8.4 Variadic Templates
8.5 Template Compilation Model
8.6 Advice
Chapter 9: Library Overview
9.1 Introduction
9.2 Standard-Library Components
9.3 Standard-Library Organization
9.4 Advice
Chapter 10: Strings and Regular Expressions
10.1 Introduction
10.2 Strings
10.3 String Views
10.4 Regular Expressions
10.5 Advice
Chapter 11: Input and Output
11.1 Introduction
11.2 Output
11.3 Input
11.4 I/O State
11.5 I/O of User-Defined Types
11.6 Output Formatting
11.7 Streams
11.8 C-style I/O
11.9 File System
11.10 Advice
Chapter 12: Containers
12.1 Introduction
12.2 vector
12.3 list
12.4 forward_list
12.5 map
12.6 unordered_map
12.7 Allocators
12.8 Container Overview
12.9 Advice
Chapter 13: Algorithms
13.1 Introduction
13.2 Use of Iterators
13.3 Iterator Types
13.4 Use of Predicates
13.5 Algorithm Overview
13.6 Parallel Algorithms
13.7 Advice
Chapter 14: Ranges
14.1 Introduction
14.2 Views
14.3 Generators
14.4 Pipelines
14.5 Concepts Overview
14.6 Advice
Chapter 15: Pointers and Containers
15.1 Introduction
15.2 Pointers
15.3 Containers
15.4 Alternatives
15.5 Advice
Chapter 16: Utilities
16.1 Introduction
16.2 Time
16.3 Function Adaption
16.4 Type Functions
16.5 source_location
16.6 move() and forward()
16.7 Bit Manipulation
16.8 Exiting a Program
16.9 Advice
Chapter 17: Numerics
17.1 Introduction
17.2 Mathematical Functions
17.3 Numerical Algorithms
17.4 Complex Numbers
17.5 Random Numbers
17.6 Vector Arithmetic
17.7 Numeric Limits
17.8 Type Aliases
17.9 Mathematical Constants
17.10 Advice
Chapter 18: Concurrency
18.1 Introduction
18.2 Tasks and threads
18.3 Sharing Data
18.4 Waiting for Events
18.5 Communicating Tasks
18.6 Coroutines
18.8 Advice
Chapter 19: History and Compatibility
19.1 History
19.2 C++ Feature Evolution
19.3 C/C++ Compatibility
19.4 Bibliography
19.5 Advice
Appendix: Module std
A.1 Introduction
A.2 Use What Your Implementation Offers
A.3 Use Headers
A.4 Make Your Own module std
A.5 Advice
Commenter Signaler un problème
A (C++ In-Depth Series)
Stroustrup presents C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, emphasizing newer language features. This edition covers many features that are new in C++20 as implemented by major C++ suppliers, including modules, concepts, coroutines, and ranges. It even introduces some library components in current use that are not scheduled for inclusion in the standard until C++23.
This authoritative guide does not aim to teach you how to program (for that, see Stroustrup's Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you'll need for C++ mastery (for that, see Stroustrup's The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you won't find a shorter or simpler introduction.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Ce livre est classé comme étant à destination d'experts:
Donc je pense que ça mériterait plutôt un niveau intermédiaire
Le guide du C++ moderne
De débutant à développeur
Résumé de l'éditeur
Ce livre vous enseignera une vision résolument moderne du C++. Issus de la nouvelle génération de développeurs et formés d'emblée à l'approche moderne, ses auteurs ont à cœur de vous transmettre l'esprit actuel du langage et ses bonnes pratiques.
Initialement conçu au sein de la communauté de Zeste de Savoir, et nourri des avis et contributions de plusieurs membres très engagés en faveur de l'approche moderne, ce livre vous dotera de bases solides pour que vous puissiez ensuite poursuivre seul votre apprentissage.
Il se fonde sur les normes C++17 et C++20.
À DESTINATION DES DÉBUTANTS
Vous débutez complètement et n’avez qu’une vague idée de ce que peut bien être la programmation ? Qu'à cela ne tienne ! Ce livre se veut le plus accessible possible et n'exige aucun prérequis si ce n'est une bonne motivation ;-).
Son objectif : vous rendre capable, à partir de zéro, de concevoir et d'implémenter correctement des programmes en C++. Il tire résolument parti des simplifications apportées récemment au langage pour rendre sa courbe d'apprentissage moins abrupte.
Écrit dans un style vivant, sans déroger pour autant à la rigueur, il vous familiarise dans la première partie avec les éléments syntaxiques de base, puis vous apprend dans la deuxième à construire un programme. La troisième partie vous initie aux pratiques d'un développeur C++. Quant à la dernière, elle vous forme à l'un des paradigmes les plus populaires en C++ : la programmation orientée objet.
FAIRE DE VOUS DES DÉVELOPPEURS
Le pari n'est pas seulement de vous apprendre à coder en C++, mais de vous sensibiliser à l'art de la programmation. Ce n'est pas parce que vous débutez que vous ne pouvez pas d'emblée prendre de bonnes habitudes ! Vous apprendrez donc à écrire un code propre, robuste, évolutif et à adopter des réflexes de développeur.
Ce livre est ambitieux, il vous amènera loin. Bon voyage !
Édition : D-BookeR - 600 pages, 19 août 2021
ISBN10 : 2822708819 - ISBN13 : 9782822708814
LE DÉBUT DU VOYAGE
- 2. Le minimum pour commencer
- 3. Rencontre avec le C⁠+⁠+
- 4. Tout ça est bien variable
- 5. Le conditionnel conjugué en C⁠+⁠+
- 6. Des boucles qui se répètent, répètent, répètent...
- 7. Au tableau !
- 8. Déployons la toute puissance des conteneurs
- 9. Des flux dans tous les sens
ON PASSE LA DEUXIÈME !
- 10. Découpons le code — les fonctions
- 11. Erreur, erreur, erreur…
- 12. Des fonctions somme toute lambdas
- 13. Envoyez le générique !
- 14. De nouvelles structures de données
- 15. Reprendrez-vous un peu de sucre syntaxique ?
- 16. [Pratique] Un gestionnaire de discographie
- 17. Découpons du code — les fichiers
INTERLUDE : ÊTRE DÉVELOPPEUR
- 18. Un coup d'œil dans le rétro
- 19. Mais où est la doc ?
- 20. Compilation en cours...
- 21. Chasse aux bugs !
- 22. Une foule de bibliothèques
- 23. Améliorer ses projets
LA PROGRAMMATION ORIENTÉE OBJET
- 24. Premiers pas avec la POO
- 25. Et qui va construire tout ça ?
- 26. Une classe de grande valeur
- 27. [Pratique] Entrons dans la matrice
- 28. Classes à sémantique d'entités
- 29. Ressources, indirections et handles
- 30. La sémantique de déplacement
- 31. Oh, le bel héritage
- 32. Les classes templates
- 33. Ça, c'est du SOLID !
34. Le voyage ne fait que commencer
Vous avez la possibilité d'acheter séparément chacune des quatre parties sur le site de l'éditeur.
Par exemple, les structures puis classes Fraction multiplient les problèmes :
- mettre en négatif une fraction est faux : -Q != -abs(N)/abs(D).
- que la fraction N/0 soit acceptée supposerait que la conversion en réel teste le cas.
- les fractions ne sont pas normalisées {101, -17} ne donne pas la même fraction que {-101, 17} (heureusement la comparaison s'appuie sur un produit croisé qui masque le problème.)
Le programme de test de palindrome fait l'erreur classique de la double vérification (début à fin comparé de fin à début et non jusqu'à croisement).
Des assertions sont douteuses comme celle sur les 20000 décimales d'un flottant alors que même les flottant en 80 bits n'ont qu'environ 19 décimales significatives. C'est pour introduire le besoin légitime de faire des comparaisons avec un gap mais omet que la précision induit aussi de fausses égalités comme 1.0 - 1e-200 == 1.0 + 1e-200.
C'est certainement un bon livre d'apprentissage qui mériterait au moins que les exemples soient revus.
Commenter Signaler un problème
Ce livre vous enseignera une vision résolument moderne du C++. Issus de la nouvelle génération de développeurs et formés d'emblée à l'approche moderne, ses auteurs ont à cœur de vous transmettre l'esprit actuel du langage et ses bonnes pratiques.
Initialement conçu au sein de la communauté de Zeste de Savoir, et nourri des avis et contributions de plusieurs membres très engagés en faveur de l'approche moderne, ce livre vous dotera de bases solides pour que vous puissiez ensuite poursuivre seul votre apprentissage.
Il se fonde sur les normes C++17 et C++20.
À DESTINATION DES DÉBUTANTS
Vous débutez complètement et n’avez qu’une vague idée de ce que peut bien être la programmation ? Qu'à cela ne tienne ! Ce livre se veut le plus accessible possible et n'exige aucun prérequis si ce n'est une bonne motivation ;-).
Son objectif : vous rendre capable, à partir de zéro, de concevoir et d'implémenter correctement des programmes en C++. Il tire résolument parti des simplifications apportées récemment au langage pour rendre sa courbe d'apprentissage moins abrupte.
Écrit dans un style vivant, sans déroger pour autant à la rigueur, il vous familiarise dans la première partie avec les éléments syntaxiques de base, puis vous apprend dans la deuxième à construire un programme. La troisième partie vous initie aux pratiques d'un développeur C++. Quant à la dernière, elle vous forme à l'un des paradigmes les plus populaires en C++ : la programmation orientée objet.
FAIRE DE VOUS DES DÉVELOPPEURS
Le pari n'est pas seulement de vous apprendre à coder en C++, mais de vous sensibiliser à l'art de la programmation. Ce n'est pas parce que vous débutez que vous ne pouvez pas d'emblée prendre de bonnes habitudes ! Vous apprendrez donc à écrire un code propre, robuste, évolutif et à adopter des réflexes de développeur.
Ce livre est ambitieux, il vous amènera loin. Bon voyage !
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Professional C++
Résumé de l'éditeur
C++ is notoriously difficult to master, but its wide-ranging capabilities have made it the most common language for gaming and commercial software applications. Even experienced users are typically unfamiliar with many advanced features, but the release of C++17 presents the perfect opportunity to explore the language's full capabilities. This new fourth edition of Professional C++ provides a code-intensive, solutions-oriented guide to everything C++ has to offer, including the newest tools and features in the latest release. Packed with practical instructions geared toward real-world programming, this book is the programmer's ideal opportunity to dig deeper into C++.
Professional C++:
Demonstrates how to think in C++ in order to maximize the language's far-reaching capabilities and develop effective solutions
Explains poorly understood elements, warns against pitfalls, and shares tips, tricks, and workarounds for efficiency and performance
Presents a variety of challenging, real-world program segments versatile enough to plug into any project
Highlights the new features of C++17 including structured bindings, nested namespaces, constexpr if, and much more
Features in-depth discussions of new C++17 Standard Library features, such as string_view, optional, parallel algorithms, the file system API, and more
Wrox Professional guides are written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Édition : Wrox - 1312 pages, 5e édition, 25 mars 2021
ISBN10 : 1119695406 - ISBN13 : 9781119695400
A Crash Course In C++ And The Standard Library
Working With Strings And String Views
Coding With Style
Professional C++ Software Design
Designing Professional C++ Programs
Designing With Objects
Designing For Reuse
C++ Coding the Professional Way
Memory Management
Gaining Proficiency With Classes And Objects
Mastering Classes and Objects
Discovering Inheritance Techniques
Odds and Ends
Writing Generic Code With Templates
Demystifying C++ I/O
Handling Errors
Overloading C++ Operators
Overview of The C++ Standard Library
Understanding Iterators and The Ranges Library
Standard Library Containers
Function Pointers, Function Objects, And Lambda Expressions
Mastering Standard Library Algorithms
String Localization and Regular Expressions
Date and Time Utilities
Random Number Facilities
Additional Library Utilities
Mastering Advanced Features of C++
Customizing and Extending The Standard Library
Advanced Templates
Multithreaded Programming With C++
C++ Software Engineering
Maximizing Software Engineering Methods
Writing Efficient C++
Becoming Adept at Testing
Conquering Debugging
Incorporating Design Techniques and Frameworks
Applying Design Patterns
Developing Cross-Platform and Crosslanguage Applications
Appendices
C++ Interviews
Annotated Bibliography
Standard Library Header Files
Introduction to UML
Par exemple, autant que possible, le code est écrit dans des modules, fonctionnalité arrivée avec C++20… et pas encore implémentée dans les dernières versions des compilateurs majeurs (à moins d'activer les fonctionnalités expérimentales). De même, la génération de chaînes de caractères se fait avec std::format, qui n'est pas encore disponible à grande échelle. Toutefois, l'auteur présente des manières de se passer de ces avancées du langage. Tous les sections et paragraphes qui se servent de C++20 sont indiqués clairement.
Les prérequis ne sont pas très élevés, puisque l'auteur commence par un cours express de C++ avec la STL, en supposant la connaissance de la programmation impérative. Les notions d'orientation objet sont également vues de zéro.
Bien que tourné vers la modernité, l'ouvrage n'oublie pas que C++ est présent depuis les années 1980 et que le lecteur devra probablement, à un moment ou à un autre, toucher à du code plus ancien. C'est pourquoi les anciennes manières de pratiquer sont décrites, afin de bien les comprendre (mais aussi leurs limitations). Dans le même esprit pragmatique, la plupart du code montré l'est dans une situation réaliste.
Puisque la pratique est (malheureusement ?) répandue dans l'industrie, l'auteur a préparé quelques sections sur la manière de se préparer à des entretiens techniques en C++ dans le cadre d'un recrutement, en plus des exercices de fin de chapitre (avec les corrections en ligne).
Commenter Signaler un problème
C++ is notoriously difficult to master, but its wide-ranging capabilities have made it the most common language for gaming and commercial software applications. Even experienced users are typically unfamiliar with many advanced features, but the release of C++17 presents the perfect opportunity to explore the language's full capabilities. This new fourth edition of Professional C++ provides a code-intensive, solutions-oriented guide to everything C++ has to offer, including the newest tools and features in the latest release. Packed with practical instructions geared toward real-world programming, this book is the programmer's ideal opportunity to dig deeper into C++.
Professional C++:
Demonstrates how to think in C++ in order to maximize the language's far-reaching capabilities and develop effective solutions
Explains poorly understood elements, warns against pitfalls, and shares tips, tricks, and workarounds for efficiency and performance
Presents a variety of challenging, real-world program segments versatile enough to plug into any project
Highlights the new features of C++17 including structured bindings, nested namespaces, constexpr if, and much more
Features in-depth discussions of new C++17 Standard Library features, such as string_view, optional, parallel algorithms, the file system API, and more
Wrox Professional guides are written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Modern C++ Programming Cookbook
Master C++ core language and standard library features, with over 100 recipes, updated to C++20
Résumé de l'éditeur
The updated second edition of Modern C++ Programming Cookbook addresses the latest features of C++20, such as modules, concepts, coroutines, and the many additions to the standard library, including ranges and text formatting. The book is organized in the form of practical recipes covering a wide range of problems faced by modern developers.
The book also delves into the details of all the core concepts in modern C++ programming, such as functions and classes, iterators and algorithms, streams and the file system, threading and concurrency, smart pointers and move semantics, and many others. It goes into the performance aspects of programming in depth, teaching developers how to write fast and lean code with the help of best practices.
Furthermore, the book explores useful patterns and delves into the implementation of many idioms, including pimpl, named parameter, and attorney-client, teaching techniques such as avoiding repetition with the factory pattern. There is also a chapter dedicated to unit testing, where you are introduced to three of the most widely used libraries for C++: Boost.Test, Google Test, and Catch2.
By the end of the book, you will be able to effectively leverage the features and techniques of C++11/14/17/20 programming to enhance the performance, scalability, and efficiency of your applications.
Édition : Packt Publishing - 750 pages, 2e édition, 11 septembre 2020
ISBN10 : 1800208987 - ISBN13 : 9781800208988
Using auto whenever possible
Creating type aliases and alias templates
Understanding uniform initialization
Understanding the various forms of non-static member initialization
Controlling and querying object alignment
Using scoped enumerations
Using override and final for virtual methods
Using range-based for loops to iterate on a range
Enabling range-based for loops for custom types
Using explicit constructors and conversion operators to avoid implicit conversion
Using unnamed namespaces instead of static globals
Using inline namespaces for symbol versioning
Using structured bindings to handle multi-return values
Simplifying code with class template argument deduction
Working with Numbers and Strings
Converting between numeric and string types
Limits and other properties of numeric types
Generating pseudo-random numbers
Initializing all bits of internal state of a pseudo-random number generator
Creating cooked user-defined literals
Creating raw user-defined literals
Using raw string literals to avoid escaping characters
Creating a library of string helpers
Verifying the format of a string using regular expressions
Parsing the content of a string using regular expressions
Replacing the content of a string using regular expressions
Using string_view instead of constant string references
Formatting text with std::format
Using std::format with user-defined types
Exploring Functions
Defaulted and deleted functions
Using lambdas with standard algorithms
Using generic and template lambdas
Writing a recursive lambda
Writing a function template with a variable number of arguments
Using fold expressions to simplify variadic function templates
Implementing the higher-order functions map and fold
Composing functions into a higher-order function
Uniformly invoking anything callable
Preprocessing and Compilation
Conditionally compiling your source code
Using the indirection pattern for preprocessor stringification and concatenation
Performing compile-time assertion checks with static_assert
Conditionally compiling classes and functions with enable_if
Selecting branches at compile time with constexpr if
Providing metadata to the compiler with attributes
Standard Library Containers, Algorithms, and Iterators
Using vector as a default container
Using bitset for fixed-size sequences of bits
Using vector<bool> for variable-size sequences of bits
Using the bit manipulation utilities
Finding elements in a range
Sorting a range
Initializing a range
Using set operations on a range
Using iterators to insert new elements into a container
Writing your own random-access iterator
Container access with non-member functions
General-Purpose Utilities
Expressing time intervals with chrono::duration
Working with calendars
Converting times between time zones
Measuring function execution time with a standard clock
Generating hash values for custom types
Using std::any to store any value
Using std::optional to store optional values
Using std::variant as a type-safe union
Visiting an std::variant
Using std::span for contiguous sequences of objects
Registering a function to be called when a program exits normally
Using type traits to query properties of types
Writing your own type traits
Using std::conditional to choose between types
Working with Files and Streams
Reading and writing raw data from/to binary files
Reading and writing objects from/to binary files
Using localized settings for streams
Using I/O manipulators to control the output of a stream
Using monetary I/O manipulators
Using time I/O manipulators
Working with filesystem paths
Creating, copying, and deleting files and directories
Removing content from a file
Checking the properties of an existing file or directory
Enumerating the content of a directory
Finding a file
Leveraging Threading and Concurrency
Working with threads
Synchronizing access to shared data with mutexes and locks
Avoiding using recursive mutexes
Handling exceptions from thread functions
Sending notifications between threads
Using promises and futures to return values from threads
Executing functions asynchronously
Using atomic types
Implementing parallel map and fold with threads
Implementing parallel map and fold with tasks
Implementing parallel map and fold with standard parallel algorithms
Using joinable threads and cancellation mechanisms
Using thread synchronization mechanisms
Robustness and Performance
Using exceptions for error handling
Using noexcept for functions that do not throw exceptions
Ensuring constant correctness for a program
Creating compile-time constant expressions
Creating immediate functions
Performing correct type casts
Using unique_ptr to uniquely own a memory resource
Using shared_ptr to share a memory resource
Implementing move semantics
Consistent comparison with the operator >=>
Implementing Patterns and Idioms
Avoiding repetitive if...else statements in factory patterns
Implementing the pimpl idiom
Implementing the named parameter idiom
Separating interfaces and implementations with the non-virtual interface idiom
Handling friendship with the attorney-client idiom
Static polymorphism with the curiously recurring template pattern
Implementing a thread-safe singleton
Exploring Testing Frameworks
Getting started with Boost.Test
Writing and invoking tests with Boost.Test
Asserting with Boost.Test
Using fixtures in Boost.Test
Controlling outputs with Boost.Test
Getting started with Google Test
Writing and invoking tests with Google Test
Asserting with Google Test
Using test fixtures with Google Test
Controlling output with Google Test
Getting started with Catch2
Writing and invoking tests with Catch2
Asserting with Catch2
Controlling output with Catch2
C++ 20 Core Features
Working with modules
Understanding module partitions
Specifying requirements on template arguments with concepts
Using requires expressions and clauses
Iterating over collections with the ranges library
Creating your own range view
Creating a coroutine task type for asynchronous computations
Creating a coroutine generator type for sequences of values
L'auteur présuppose une bonne connaissance du langage et de ses fondamentaux, mais pas forcément de C++ moderne, c'est là l'intérêt. Il analyse, souvent en grande profondeur, les nouveautés apparues entre C++ 11 et C++ 20, grâce à l'utilisation d'exemples complets. L'exposé est rarement théorique, sauf pour détailler quelques finesses. Notamment, puisque tout le monde ne peut pas encore utiliser les dernières versions du langage pour diverses raisons, l'auteur indique toujours quand telle ou telle fonctionnalité a été ajoutée au langage.
La structure globale du livre est assez classique, avec de grands thèmes à aborder, mais chaque section est structurée sous la forme d'une recette, avec différentes sous-sections fournissant des niveaux de détail différents. On pourrait se limiter à la première sous-section pour utiliser le livre comme référence de tous les jours, avec la syntaxe et un cas d'utilisation potentiel.
Commenter Signaler un problème
Master C++ core language and standard library features, with over 100 recipes, updated to C++20
The updated second edition of Modern C++ Programming Cookbook addresses the latest features of C++20, such as modules, concepts, coroutines, and the many additions to the standard library, including ranges and text formatting. The book is organized in the form of practical recipes covering a wide range of problems faced by modern developers.
The book also delves into the details of all the core concepts in modern C++ programming, such as functions and classes, iterators and algorithms, streams and the file system, threading and concurrency, smart pointers and move semantics, and many others. It goes into the performance aspects of programming in depth, teaching developers how to write fast and lean code with the help of best practices.
Furthermore, the book explores useful patterns and delves into the implementation of many idioms, including pimpl, named parameter, and attorney-client, teaching techniques such as avoiding repetition with the factory pattern. There is also a chapter dedicated to unit testing, where you are introduced to three of the most widely used libraries for C++: Boost.Test, Google Test, and Catch2.
By the end of the book, you will be able to effectively leverage the features and techniques of C++11/14/17/20 programming to enhance the performance, scalability, and efficiency of your applications.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
C++ Primer
Résumé de l'éditeur
Fully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today's best practices, the authors show how to use both the core language and its standard library to write efficient, readable, and powerful code.
C++ Primer, Fifth Edition, introduces the C++ standard library from the outset, drawing on its common functions and facilities to help you write useful programs without first having to master every language detail. The book's many examples have been revised to use the new language features and demonstrate how to make the best use of them. This book is a proven tutorial for those new to C++, an authoritative discussion of core C++ concepts and techniques, and a valuable resource for experienced programmers, especially those eager to see C++11 enhancements illuminated.
Start Fast and Achieve More
- Learn how to use the new C++11 language features and the standard library to build robust programs quickly, and get comfortable with high-level programming
- Learn through examples that illuminate today's best coding styles and program design techniques
- Understand the “rationale behind the rules”: why C++11 works as it does
- Use the extensive crossreferences to help you connect related concepts and insights
- Benefit from up-to-date learning aids and exercises that emphasize key points, help you to avoid pitfalls, promote good practices, and reinforce what you've learned
C++ Primer, Fifth Edition, features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method-notable by a small space inside the spine-also increases durability.
Édition : Addison Wesley - 976 pages, 5e édition, 6 août 2012
ISBN10 : 0321714113 - ISBN13 : 9780321714114
Commenter Signaler un problème
Je suis pour ma part persuadé que, quel que soit le domaine d'apprentissage, vouloir partir des concepts les plus bas niveaux, les plus fondamentaux, pour ensuite arriver aux concepts utilisés couramment n'est pas la bonne approche. On n'enseigne pas à un bébé l'indo-européen et la linguistique pour lui apprendre à parler français. Quand on apprend à compter, on ne commence pas par l'algèbre de Peano. Et bien je pense que c'est pareil en C++. Voici quelques raisons :
- Déjà, il y a toujours plus bas niveau. Si on décide de partir de là, où s'arrêter.. Au C ? À l'assembleur ? À l'électronique digitale ?...
- Ensuite, le code bas niveau n'est pas le code que l'on écrit normalement. Autant commencer par montrer dès le début le code que l'apprenant sera sensé utiliser 99% du temps par la suite, afin de lui donner les bons réflexes.
- De même, il est souvent rébarbatif, ce qui ne va pas dans le sens d'intéresser l'apprenant. Si je veux développer un pauvre programme "Comment tu t'appelles ?" "xxx" "Bonjour xxx", pourquoi devrais-je manipuler des notions complexes comme un pointeur, une allocation dynamique (ou l'alternative, un tableau qui habituera les gens à écrire du code remplis de failles de sécurité) ? Et quand on dira : "Bon, maintenant que vous savez faire ça, oubliez tout, ce n'est pas comme ça qu'on fait pour de vrai", ceux qui auront résisté jusque là risque d’avoir des envies de meurtre...
- Enfin, vouloir faire ça demande de présenter 50 notions d'un coup avant de pouvoir écrire le moindre programme vaguement utile. Alors, certes, manipuler std::string demande aussi de connaitre plein de choses. Mais il s'agit de choses assez basiques (pour accéder à un caractère, c'est [], pour comparer, c'est < ou ==, pour il y a plein d'autres choses, on verra plus tard), là ou autrement, il s'agit de concepts plus chauds (indirection mémoire, allocation dynamique, sémantique de copie, encapsulation,...). Et d'expérience, pour un parfait débutant, une string n'est pas plus mystérieuse qu'un int, et il manipule l'un comme l'autre, et c'est avec surprise qu'il découvre plus tard qu'il ne s'agit pas d'un type de base (après tout, c'est le cas dans d'autres langages...), mais qu'il peut lui même créer son propre type. Je trouve que ça permet une courbe d'apprentissage bien plus lisse.
Attention, je ne préconise pas de ne pas montrer les aspects bas niveau, ils sont nécessaires eux aussi. Je parle juste de l'ordre de présentation des sujets.
Et je ne préconise pas non plus de montrer toute la STL avant de regarder comment elle est faite, ce serait contre-productif. Typiquement, string/vector/(unordered_)map/iostream me semble un bon sous-ensemble, qui permet d'écrire déjà pas mal de programmes sans que ce soit trop douloureux ou artificiel. Ensuite, il est temps de lever le capot, en utilisant d'ailleurs ces types comme exemples privilégiés, car leur comportement a été intégré par l'apprenant. Et finalement, une fois que ce genre de choses est faite, il n'y a pas même plus trop besoin de montrer la suite de la STL, les bons concepts sont là pour permettre une certaine autonomie (en consultant une référence, bien entendu).
Tout dépend de l'étendue de la couverture de la bibliothèque standard.
Dans les formations "débutant C++" que je donne à mes collègues (dont j'attends une familiarité avec le développement impératif et procédural, avec l'algorithmie, voire la notion de mémoire), je ne présente l'allocation de mémoire qu'assez tardivement. Je ne rentre pas dans le détail de toute la partie STL de la bibliothèque standard, mais ils auront manipulé std::string, les flux, dont fichier, et std::vector bien avant de voir les allocations dynamiques et les côtés objet, et template (développement de classes et de fonction). Je rejoins assez l'approche de Francis Glassborrow dans son /Je Me Lance/ -- pour le coup, il ne traite ni de la POO, ni de l'écriture de templates, ni de la gestion de la mémoire, ni des exceptions. Je n'ai pas un souvenir précis, mais il me semble qu'Accelerated C++ suivait une approche de ce genre également -- relativement à l'utilisation intensive de la bibliothèque standard.
Toujours avant d'entrer dans le vif du sujet, je présente les 3 grands axes de la STL v1: conteneurs, itérateurs et algorithmes. L'idée n'est pas de faire un tour complet des conteneurs et des algorithmes, mais de comprendre les fondements et de savoir lire une doc en ligne comme celle de cppreference.
A aucun moment je ne les fais travailler avec des char* car on ne veut pas voir ce type manipulé à la main dans nos codes industriels. malloc et free sont des parenthèses pour ceux qui se souviennent du C. new et delete, sont abordés quand je leur fais développer une capsule RAII exception-safe à sémantique de valeur: une matrice. Mon objectif, leur faire sentir qu'ils ne veulent pas manipuler ces bêtes à la main et comprendre qu'il n'est pas possible d'écrire du code robuste et maintenable qui manipule la mémoire (ou autre ressource: FILE, socket, mutex, lock de base de donnée, pot de peinture...) à la main. Du coup, j'ai tout un chapitre qui démontre les problèmes dans la manipulation de la mémoire à la main dans un contexte où les exceptions existent -- pour autant je ne rentre dans les détails de comment les exceptions se lancent, s'attrapent, s'écrivent, se réfléchissent que le dernier jour. Pour la démonstration j'ai honteusement repris (et cité) les codes d'Aaron Lahman dans sa réponse à Raymond Chen sur comment reconnaître rapidement un code incorrect -> traduit ici: http://alexandre-laurent.developpez....ou-exceptions/
J'enchaîne ensuite sur la sémantique d'entité et le cas particulier de l'héritage orienté sous-typage/substituabilité (i.e. le public). Je parle pas mal des bonnes pratiques: SOLID, Déméter...
L'écriture de code template arrive après. Ils sont déjà familier avec son utilisation à ce niveau.
Je conclue donc avec exceptions, mais aussi programmation par contrat histoire de calmer et de cadrer les ardeurs de programmation défensive que l'on a facilement quand on débute. Et l'exercice de l'aquarium même si j'ai rarement le temps de dépasser l'étape de la conception qui me permet de présenter quelques design patterns et des rudiments d'UML.
Dans la formation "révision", la première chose dont je parle, c'est du RAII, et j'insiste que c'est la chose la plus importante qu'ils doivent retenir car le reste, c'est de la syntaxe, et le langage au fond, il ressemble suffisamment aux autres pour qu'ils sachent s'adapter. Mon public n'est pas sensé n'avoir jamais programmé de sa vie -- même si le cas s'est présenté une fois suite à une erreur d'aiguillage.
Je ne parle pas un seul instant de la surcharge de new et de delete. Je parle plus ou moins rapidement de l'héritage multiple (MI) selon le niveau public. Mais à ce stade, j'ai déjà beaucoup insisté sur le LSP, sur l'héritage d'import de code uniquement (le privé), ce qui ce permet de parler du MI pas seulement sous l'angle syntaxique, mais aussi et surtout sous l'angle conception qui permet de ne pas se tirer une balle dans le pied. La méta-programmation est réservée à la formation "expert".
Fully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today's best practices, the authors show how to use both the core language and its standard library to write efficient, readable, and powerful code.
C++ Primer, Fifth Edition, introduces the C++ standard library from the outset, drawing on its common functions and facilities to help you write useful programs without first having to master every language detail. The book's many examples have been revised to use the new language features and demonstrate how to make the best use of them. This book is a proven tutorial for those new to C++, an authoritative discussion of core C++ concepts and techniques, and a valuable resource for experienced programmers, especially those eager to see C++11 enhancements illuminated.
Start Fast and Achieve More
- Learn how to use the new C++11 language features and the standard library to build robust programs quickly, and get comfortable with high-level programming
- Learn through examples that illuminate today's best coding styles and program design techniques
- Understand the “rationale behind the rules”: why C++11 works as it does
- Use the extensive crossreferences to help you connect related concepts and insights
- Benefit from up-to-date learning aids and exercises that emphasize key points, help you to avoid pitfalls, promote good practices, and reinforce what you've learned
C++ Primer, Fifth Edition, features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method-notable by a small space inside the spine-also increases durability.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
The C++ Programming Language
Résumé de l'éditeur
New C++11 coverage includes
Enhanced support for concurrency and multicores
Regular expressions, resource management pointers, random numbers, and improved containers
General/uniform initialization, simplified for-statements, move semantics, and Unicode support
Lambdas, general constant expressions, control over class defaults, variadic templates, and user-defined literals
Compatibility issues
Topics addressed in this comprehensive book include :
- Basic facilities: type, object, scope, storage, computation fundamentals, and more
- Modularity, as supported by namespaces, source files, and exception handling
- C++ abstraction, including classes, class hierarchies, and templates
- Standard Library: containers, algorithms, iterators, utilities, strings, stream I/O, locales, numerics, and more
- The C++ basic memory model, in depth
This fourth edition makes C++11 thoroughly accessible to programmers moving from C++98 or other languages, while introducing insights and techniques that even cutting-edge C++11 programmers will find indispensable.
The C++ Programming Language, Fourth Edition, features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method-noticeable by a small space inside the spine-also increases durability.
Édition : Addison Wesley - 1360 pages, 4e édition, 10 mai 2013
ISBN10 : 0321563840 - ISBN13 : 9780321563842
Commenter Signaler un problème
New C++11 coverage includes
Enhanced support for concurrency and multicores
Regular expressions, resource management pointers, random numbers, and improved containers
General/uniform initialization, simplified for-statements, move semantics, and Unicode support
Lambdas, general constant expressions, control over class defaults, variadic templates, and user-defined literals
Compatibility issues
Topics addressed in this comprehensive book include :
- Basic facilities: type, object, scope, storage, computation fundamentals, and more
- Modularity, as supported by namespaces, source files, and exception handling
- C++ abstraction, including classes, class hierarchies, and templates
- Standard Library: containers, algorithms, iterators, utilities, strings, stream I/O, locales, numerics, and more
- The C++ basic memory model, in depth
This fourth edition makes C++11 thoroughly accessible to programmers moving from C++98 or other languages, while introducing insights and techniques that even cutting-edge C++11 programmers will find indispensable.
The C++ Programming Language, Fourth Edition, features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method-noticeable by a small space inside the spine-also increases durability.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Professional C++
Résumé de l'éditeur
* Geared to experienced C++ developers who may not be familiar with the more advanced features of the language, and therefore are not using it to its full capabilities
* Teaches programmers how to think in C++-that is, how to design effective solutions that maximize the power of the language
* The authors drill down into this notoriously complex language, explaining poorly understood elements of the C++ feature set as well as common pitfalls to avoid * Contains several in-depth case studies with working code that's been tested on Windows, Linux, and Solaris platforms --Ce texte fait référence à l'édition Broché .
Back Cover copy
C++ is one of the most popular programming languages, but this fast and powerful language is also notoriously complex. Many useful aspects of C++ remain a mystery to even the most experienced programmers. Too often, programming books concentrate more on the syntax of the language and less on its real-world applications. This code-intensive, practical guide changes that by teaching all facets of C++ development, including effective application design, testing, and debugging. You'll learn simple, powerful techniques used by C++ professionals, little-known features that will make your life easier, and reusable coding patterns that will bring your basic C++ skills to the professional level.
After a quick review of C++ fundamentals, the authors launch into teaching you how to use C++ in your daily work. They show you various programming methodologies and good programming style, as well as ways to increase the quality of your code and improve your programming efficiency. You'll discover how to write cross-language and cross-platform code, how to perform unit testing and regression testing, and how to use the standard C++ library. By the end of the book you'll be armed with a wealth of reusable coding patterns that can be applied to all your projects.
You will be able to master the C++ language with all its idiosyncrasies, and take advantage of its powerful capabilities for large-scale software development. What you will learn from this book
*Different programming methodologies and high-quality programming styles
*Ways to take advantage of C++ for large-scale software development
*Methods to ensure bug-free code
*An appreciation for object-oriented design
*How to use libraries and patterns to write better code--with less work
*The best ways to manage memory in C++
*Techniques for input and output
Who this book is for
This book is for programmers and developers who want to take their C++ skills to the professional level. Some knowledge of basic C++ or significant experience with C and/or Java is required, as well as a solid foundation in programming fundamentals and familiarity with a compiler.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Édition : John Wiley et Sons Ltd - 1104 pages, 2e édition, 14 octobre 2011
ISBN10 : 0470932449 - ISBN13 : 9780470932445
- PART I: Introduction to Professional C++
- CHAPTER 1: A Crash Course in C++
- CHAPTER 2: Designing Professional C++ Programs
- CHAPTER 3: Designing with Objects
- CHAPTER 4: Designing for Reuse
- CHAPTER 5: Coding with Style
- PART II: C++ Coding the Professional Way
- CHAPTER 6: Gaining Profi ciency with Classes and Objects
- CHAPTER 7: Mastering Classes and Objects
- CHAPTER 8: Discovering Inheritance Techniques
- CHAPTER 9: Understanding C++ Quirks and Oddities
- CHAPTER 10: Handling Errors
- CHAPTER 11: Delving into the Standard Library
- CHAPTER 12: Understanding Containers and Iterators
- CHAPTER 13: Mastering STL Algorithms
- CHAPTER 14: Using Strings and Regular Expressions
- CHAPTER 15: Demystifying C++ I/O
- CHAPTER 16: Additional Library Utilities
- CHAPTER 17: Customizing and Extending the STL
- PART III: Mastering Advanced Features of C++
- CHAPTER 18: Overloading C++ Operators
- CHAPTER 19: Writing Generic Code with Templates
- CHAPTER 20: Advanced Templates
- CHAPTER 21: Eff ective Memory Management
- CHAPTER 22: Multithreaded Programming with C++
- PART IV: C++ Software Engineering
- CHAPTER 23: Maximizing Software Engineering Methods
- CHAPTER 24: Writing Effi cient C++
- CHAPTER 25: Developing Cross-Platform and Cross-Language Applications
- CHAPTER 26: Becoming Adept at Testing
- CHAPTER 27: Conquering Debugging
- CHAPTER 28: Incorporating Design Techniques and Frameworks
- CHAPTER 29: Applying Design Patterns
Commenter Signaler un problème
* Geared to experienced C++ developers who may not be familiar with the more advanced features of the language, and therefore are not using it to its full capabilities
* Teaches programmers how to think in C++-that is, how to design effective solutions that maximize the power of the language
* The authors drill down into this notoriously complex language, explaining poorly understood elements of the C++ feature set as well as common pitfalls to avoid * Contains several in-depth case studies with working code that's been tested on Windows, Linux, and Solaris platforms --Ce texte fait référence à l'édition Broché .
Back Cover copy
C++ is one of the most popular programming languages, but this fast and powerful language is also notoriously complex. Many useful aspects of C++ remain a mystery to even the most experienced programmers. Too often, programming books concentrate more on the syntax of the language and less on its real-world applications. This code-intensive, practical guide changes that by teaching all facets of C++ development, including effective application design, testing, and debugging. You'll learn simple, powerful techniques used by C++ professionals, little-known features that will make your life easier, and reusable coding patterns that will bring your basic C++ skills to the professional level.
After a quick review of C++ fundamentals, the authors launch into teaching you how to use C++ in your daily work. They show you various programming methodologies and good programming style, as well as ways to increase the quality of your code and improve your programming efficiency. You'll discover how to write cross-language and cross-platform code, how to perform unit testing and regression testing, and how to use the standard C++ library. By the end of the book you'll be armed with a wealth of reusable coding patterns that can be applied to all your projects.
You will be able to master the C++ language with all its idiosyncrasies, and take advantage of its powerful capabilities for large-scale software development. What you will learn from this book
*Different programming methodologies and high-quality programming styles
*Ways to take advantage of C++ for large-scale software development
*Methods to ensure bug-free code
*An appreciation for object-oriented design
*How to use libraries and patterns to write better code--with less work
*The best ways to manage memory in C++
*Techniques for input and output
Who this book is for
This book is for programmers and developers who want to take their C++ skills to the professional level. Some knowledge of basic C++ or significant experience with C and/or Java is required, as well as a solid foundation in programming fundamentals and familiarity with a compiler.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Minimanuel de C++
Cours et exos corrigés
Résumé de l'éditeur
Conçus pour faciliter aussi bien l'apprentissage que la révision, les minimanuels proposent un cours concis et progressif pour vous accompagner jusqu'à l'examen. Des exemples, des savoir-faire et des méthodes pour éviter les pièges et programmer efficacement, ainsi que des exercices et leurs corrigés complètent le cours.
Ce minimanuel de C++ fournit les bases de l'un des langages de programmation incontournables dans toute formation d'informaticien, en particulier pour ceux qui vont travailler dans des domaines techniques et industriels.
Le code source des listings est disponible sur le site de Dunod sur la page dédiée à cet ouvrage.
Édition : Dunod - 241 pages, 10 juillet 2010
ISBN10 : 2100543296 - ISBN13 : 9782100543298
- Expression arithmétiques en C++
- Chaînes et types énumération
- Tableaux et vecteurs
- Structures de contrôle
- Pointeurs
- Fonctions
- Classes
- La surcharge des opérateurs
- Agrégation, héritage, polymorphisme et patrons
Cependant, le tableau n'est pas que clair : on peut remarquer quelques fautes d'orthographe évidentes du début à la fin, ainsi que la présentation de Dev-C++, un EDI dont le support est arrêté depuis... 2005. On remarquera que ce livre a été édité en 2010 et qu'un particulier continue de manière non officielle la maintenance de l'EDI, sans que ce soit précisé.
Aucun point n'est jamais abordé en détail : le polymorphisme, par exemple, est expédié en trois pages seulement. C'est amplement suffisant pour la portée voulue de l'ouvrage (un mini manuel de C++), l'essentiel y est dit, on ne se pose pas de question supplémentaire la partie lue.
Chaque chapitre est divisé en plusieurs parties : le plan et les objectifs, le développement, un récapitulatif (l'essence des éléments principaux du chapitre) puis des exercices avec leur solution. Le développement est parsemé d'exemples, plus que bien commentés ; après chaque portion de code, le résultat que donne son exécution.
Il ne faut pas prendre ce livre pour ce qu'il n'est pas non plus : son but n'est pas d'introduire de l'algorithmique, il n'y en a d'ailleurs aucune trace. Il donne le condensé de la syntaxe du C++, pas une miette de plus - le format ne le permettant pas non plus. En tant que tel, il pourra servir de référence à celui qui ne pratique pas de longue date le C++ ; l'utilisateur plus avancé ne bénéficiera dans ce cas que des annexes, fort complètes, des mots-clés (tous avec un mot d'explication, même s'ils n'ont pas été abordés dans le texte) et des fonctions de la bibliothèque standard (avec l'en-tête de définition).
Sans oublier le point fort du livre : je l'ai lu d'une seule traite, en à peine quelques heures. Il est prévu pour être compréhensible par le commun des mortels.
Vous avez lu ce livre ? Qu'en pensez-vous ?
Commenter Signaler un problème
Mini manuel de C++: Amazon.fr: Jean-Michel Reveillac: Livres@@AMEPARAM@@http://ecx.images-amazon.com/images/I/41Ex7y2risL.@@AMEPARAM@@41Ex7y2risL
Minimanuel de C++
Vous l'avez lu ? Qu'en pensez-vous ?
Le langage C++
Résumé de l'éditeur
- Les classes abstraites en tant qu'interfaces.
- Les hiérarchies de classes et la programmation orientée objet.
- Les modèles comme base des logiciels génériques avec types sécurisés.
- Les exceptions pour la gestion courante des erreurs.
- Les espaces de noms pour la modularité des logiciels à grande échelle.
- L'identification des types à l'exécution ou RTTI.
- Le sous ensemble C de C++ pour la compatibilité et le travail au niveau système.
- Les algorithmes et conteneurs standards.
- Les chaînes standards, les flux d'entrées/sorties et les valeurs numériques.
Bjarne Stroustrup est le concepteur du langage C++ et l'auteur des ouvrages C++ Programming Langage, The Annotated C++ Reference Manual et The Design and Évolution of C++. Diplômé de l'université d'Aarhus, Danemark, et de l'université de Cambridge, Angleterre, Bjarne Stroustrup dirige aujourd'hui le département de recherche pour la programmation à grande échelle de AT&T Labs. Il est également chercheur pour les laboratoire AT&T Bell. Ses recherches portent notamment sur les systèmes distribués, les systèmes d'exploitation, la simulation, la conception et la programmation.
Remarque : la nouvelle édition de The C++ Programming Language (en anglais), contenant la nouvelle norme C++11, est prévue le 10 mai 2013.
Édition : Campus Press - 1100 pages, 1er mars 2003
ISBN10 : 2744070033 - ISBN13 : 9782744070037
Commenter Signaler un problème
- Les classes abstraites en tant qu'interfaces.
- Les hiérarchies de classes et la programmation orientée objet.
- Les modèles comme base des logiciels génériques avec types sécurisés.
- Les exceptions pour la gestion courante des erreurs.
- Les espaces de noms pour la modularité des logiciels à grande échelle.
- L'identification des types à l'exécution ou RTTI.
- Le sous ensemble C de C++ pour la compatibilité et le travail au niveau système.
- Les algorithmes et conteneurs standards.
- Les chaînes standards, les flux d'entrées/sorties et les valeurs numériques.
Bjarne Stroustrup est le concepteur du langage C++ et l'auteur des ouvrages C++ Programming Langage, The Annotated C++ Reference Manual et The Design and Évolution of C++. Diplômé de l'université d'Aarhus, Danemark, et de l'université de Cambridge, Angleterre, Bjarne Stroustrup dirige aujourd'hui le département de recherche pour la programmation à grande échelle de AT&T Labs. Il est également chercheur pour les laboratoire AT&T Bell. Ses recherches portent notamment sur les systèmes distribués, les systèmes d'exploitation, la simulation, la conception et la programmation.
Remarque : la nouvelle édition de The C++ Programming Language (en anglais), contenant la nouvelle norme C++11, est prévue le 10 mai 2013.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Le langage C++
Le livre d'initiation pour C++
Résumé de l'éditeur
- Travaillez avec les variables, les constantes, les instructions et les expressions
- Maîtrisez la conception orientée objet
- Utilisez les classes, les variables membres et les méthodes pour implémenter la conception en C++
- Appliquez UML, le langage d'unification des procédures de conception orientée objet
- Comprenez les notions indispensables à l'obtention de classes robustes et réutilisables
- Familiarisez-vous avec la bibliothèque de modèles Standard.
Remaque : une nouvelle édition de 896 pages est sortie le 7 décembre 2012, contenant en particulier le C++
Édition : Campus Press - 430 pages, 1er janvier 2002
ISBN10 : 2744013471 - ISBN13 : 9782744013478
Commenter Signaler un problème
- Travaillez avec les variables, les constantes, les instructions et les expressions
- Maîtrisez la conception orientée objet
- Utilisez les classes, les variables membres et les méthodes pour implémenter la conception en C++
- Appliquez UML, le langage d'unification des procédures de conception orientée objet
- Comprenez les notions indispensables à l'obtention de classes robustes et réutilisables
- Familiarisez-vous avec la bibliothèque de modèles Standard.
Remaque : une nouvelle édition de 896 pages est sortie le 7 décembre 2012, contenant en particulier le C++
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
La Bible C++
Résumé de l'éditeur
Plus qu'une référence, La Bible C++ propose des exercices bien développés, des exemples et des études de cas présentant en détails des applications C++ utiles. C++ moderne. La Bible C++ se concentre sur les caractéristiques modernes du standard C++, telles que la bibliothèque de flux, la classe de chaînes de caractères et l'utilisation de la bibliothèque STL. En réduisant le plus possible les constructions confuses sources d'erreur, cela permet d'apprendre mieux l'informatique et de devenir rapidement un programmeur plus productif.
Les principes d'abord. Organisés pour traiter de la complexité du C++, les chapitres de fondement de ce livre présentent les concepts de base et les informations essentielles du C++. Une fois que vous maîtrisez les fondamentaux, les chapitres suivants ajoutent de la profondeur et servent de référence unifiée aux rubriques clés, telles que le traitement des exceptions, la gestion de mémoire, le polymorphisme, la gestion de la portée des variables, les modèles, etc.
Orientation objet. Le C++ est présenté comme un langage orienté objet pour vous permettre d'apprendre à utiliser les objets dès le départ. Une fois que vous vous êtes familiarisé avec la création d'objets et de fonctions membre, vous apprendrez à mettre en ?vre vos propres classes et fonctions membre. Les chapitres suivants présentent les méthodologies et outils de conception orientés objet, élargissent vos connaissances de la notation UML et introduisent des modèles de conception.
Flexibilité. Conçu pour être modulaire, La Bible C++ vous permet de suivre vos centres d'intérêt. Choisissez les chapitres en fonction des rubriques avancées qui vous intéressent : le STL, la programmation graphique ou la conception orientée objet. Vous pouvez également choisir l'un des trois chapitres sur les applications (bases de données relationnelles, interfaces utilisateur graphiques et XML) pour améliorer vos connaissances du C++ dans des situations de programmation fidèles à la réalité.
Édition : Micro Application - 1230 pages, 1re édition, 1er janvier 2004
ISBN10 : 274293717X - ISBN13 : 9782742937172
Cependant, certains passages (3 d'environ 2 lignes ) ne sont pas traduits et il y a quelques fautes d'orthographes. De plus le switch est traité comme sujet avancé !
Commenter Signaler un problème
Plus qu'une référence, La Bible C++ propose des exercices bien développés, des exemples et des études de cas présentant en détails des applications C++ utiles. C++ moderne. La Bible C++ se concentre sur les caractéristiques modernes du standard C++, telles que la bibliothèque de flux, la classe de chaînes de caractères et l'utilisation de la bibliothèque STL. En réduisant le plus possible les constructions confuses sources d'erreur, cela permet d'apprendre mieux l'informatique et de devenir rapidement un programmeur plus productif.
Les principes d'abord. Organisés pour traiter de la complexité du C++, les chapitres de fondement de ce livre présentent les concepts de base et les informations essentielles du C++. Une fois que vous maîtrisez les fondamentaux, les chapitres suivants ajoutent de la profondeur et servent de référence unifiée aux rubriques clés, telles que le traitement des exceptions, la gestion de mémoire, le polymorphisme, la gestion de la portée des variables, les modèles, etc.
Orientation objet. Le C++ est présenté comme un langage orienté objet pour vous permettre d'apprendre à utiliser les objets dès le départ. Une fois que vous vous êtes familiarisé avec la création d'objets et de fonctions membre, vous apprendrez à mettre en ?vre vos propres classes et fonctions membre. Les chapitres suivants présentent les méthodologies et outils de conception orientés objet, élargissent vos connaissances de la notation UML et introduisent des modèles de conception.
Flexibilité. Conçu pour être modulaire, La Bible C++ vous permet de suivre vos centres d'intérêt. Choisissez les chapitres en fonction des rubriques avancées qui vous intéressent : le STL, la programmation graphique ou la conception orientée objet. Vous pouvez également choisir l'un des trois chapitres sur les applications (bases de données relationnelles, interfaces utilisateur graphiques et XML) pour améliorer vos connaissances du C++ dans des situations de programmation fidèles à la réalité.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Bon je déterre un post vieux de trois ans, j'en suis conscient.
Mais un point me chiffonne fortement sur ce livre : les exercices.
Ayant acheté le livre en français, je cherche DESESPEREMENT les solutions aux exercices/questions (pas forcément en français n'est-ce pas). Mais le mieux que j'ai réussi à faire, c'est me taper un violent mur comme quoi seul les profs ont droit aux corrections... Je suis ni prof ni élève, je veux juste apprendre et j'ai payé 80€ pour un livre dont je ne peux même pas obtenir les corrigés x)
Donc après X heures sur Google et maintes prières sataniques, quelqu'un pourrait-il partager ou indiquer où trouver ce précieux document ? Pitié... ;(
Le livre est vraiment bien conçu et complet, et c'est d'autant plus frustrant de ne pas avoir l'intégralité du potentiel du livre entre les mains.
Merci, bonne journée à vous
Programmation
Principes et pratique avec C++
Résumé de l'éditeur
Théorie et pratique permettent d'acquérir la maîtrise nécessaire à la rédaction de programmes robustes et efficaces, et l'apprentissage par étape assure une progression continue.
Parmi les sujets couverts :
- les types, les objets et les valeurs ;
- la gestion des erreurs ;
- les classes, l'héritage et le polymorphisme ;
- les entrées-sorties textuelles et le mode graphique ;
- l'utilisation de bibliothèques, y compris la STL.
Fourmillant d'exemples et de figures, le livre comprend aussi de nombreux exercices, en particulier en fin de chapitre : questions théoriques, exercices guidés et exercices pratiques.
Édition : Pearson Education - 944 pages, 1re édition, 17 septembre 2010
ISBN10 : 2744077186 - ISBN13 : 9782744077180
- Partie I. Les Bases
- Hello, World!
- Objets, types et valeurs
- Traitement des données
- Erreurs
- Ecrire un programme
- Finaliser un programme
- Détails techniques : fonctions, etc.
- Détails techniques : classes, etc.
- Partie II. Entrées et Sorties
- Flux d'entrée et de sortie
- Personnalisation des entrées et des sorties
- Un modèle d'affichage
- Classes de graphisme
- Conception de classes de graphisme
- Affichage graphique des fonctions et données
- Interfaces graphiques
- Partie III. Données et Algorithmes
- Vector et allocation dynamique
- Vectors et tableaux
- Vector, templates et exceptions
- Conteneurs et itérateurs
- Algorithmes et conteneurs associatifs
- Partie IV. Une vision élargie
- Idéaux et histoire
- Manipulation de texte
- Calculs numériques
- Tests
Ce livre est clairement destiné aux débutants en programmation. Cependant, à mon avis, il s'adresse surtout aux débutants motivés. En effet, pour profiter pleinement de l'ouvrage, il me semble nécessaire de le lire en ayant à portée de main son ordinateur et en mettant en pratique, comme suggéré par l'auteur, tous les exercices proposés. Cette manière de procéder augmente considérablement le temps de lecture mais sera, à mon avis, la meilleure façon de profiter pleinement du livre. Un programmeur expérimenté risque par contre de s'ennuyer bien que l'auteur aille assez loin dans le détail des concepts expliqués et qu'il dispense également de nombreux conseils pour obtenir un code de qualité.
Du point de vue de la forme, le livre est très bien structuré. La découpe est claire et chaque concept bien isolé. J'ai parfois trouvé que le style était quelque peu trop insistant sur certains points, mais cela est sans doute dû à la très grande expérience de l'auteur. J'ai également un léger regret concernant le choix du style pour la présentation des exemples. Cela fournit cependant une motivation supplémentaire pour les rédiger dans son environnement de développement préféré et ainsi profiter de la coloration syntaxique.
En conclusion, je pense qu'il s'agit d'un ouvrage de très bonne qualité, porté par l'expérience et les talents de pédagogue de Bjarne Stroustrup, et qui ravira les personnes désireuses d'apprendre la programmation. Si par contre, vous êtes un programmeur expérimenté et que vous pensiez profiter de cet ouvrage pour apprendre le C++, passez votre chemin car ce n'est pas le but poursuivi.
Commenter Signaler un problème
Théorie et pratique permettent d'acquérir la maîtrise nécessaire à la rédaction de programmes robustes et efficaces, et l'apprentissage par étape assure une progression continue.
Parmi les sujets couverts :
- les types, les objets et les valeurs ;
- la gestion des erreurs ;
- les classes, l'héritage et le polymorphisme ;
- les entrées-sorties textuelles et le mode graphique ;
- l'utilisation de bibliothèques, y compris la STL.
Fourmillant d'exemples et de figures, le livre comprend aussi de nombreux exercices, en particulier en fin de chapitre : questions théoriques, exercices guidés et exercices pratiques.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Ou pourrais-je me procurer ce livre? Je ne le trouve nul part, en livre ou en ebook...
Merci!
Accelerated C++: Practical Programming by Example
Résumé de l'éditeur
--Dag Brück, founding member of the ANSI/ISO C++ committee
The authors present a clear, cogent introduction to C++ programming in a way that gets the student writing nontrivial programs immediately.
--Stephen Clamage, Sun Microsystems, Inc., and chair of the ANSI C++ committee
Anyone reading just this one book and working through the examples and exercises will have the same skills as many professional programmers.
--Jeffrey D. Oldham, Stanford University
Why is Accelerated C++ so effective? Because it
- Starts with the most useful concepts rather than the most primitive ones: You can begin writing programs immediately.
- Describes real problems and solutions, not just language features: You see not only what each feature is, but also how to use it.
- Covers the language and standard library together: You can use the library right from the start.
The authors proved this approach in their professional-education course at Stanford University, where students learned how to write substantial programs on their first day in the classroom.
Whether you are eager to get started writing your first C++ programs, or you are already using C++ and seeking deeper understanding, the authors' unique approach and expertise make Accelerated C++ an indispensable addition to your library.
Édition : Addison Wesley - 352 pages, 1re édition, 14 août 2000
ISBN10 : 020170353X - ISBN13 : 9780201703535
Les seuls reproches qui peuvent être faits sont qu'il s'adresse à des débutants qui possèdent déjà des bases en développement, ou à des débutants vifs et motivés. De plus cet ouvrage, de 2000, n'aborde nullement le C++2011.
Commenter Signaler un problème
--Dag Brück, founding member of the ANSI/ISO C++ committee
The authors present a clear, cogent introduction to C++ programming in a way that gets the student writing nontrivial programs immediately.
--Stephen Clamage, Sun Microsystems, Inc., and chair of the ANSI C++ committee
Anyone reading just this one book and working through the examples and exercises will have the same skills as many professional programmers.
--Jeffrey D. Oldham, Stanford University
Why is Accelerated C++ so effective? Because it
- Starts with the most useful concepts rather than the most primitive ones: You can begin writing programs immediately.
- Describes real problems and solutions, not just language features: You see not only what each feature is, but also how to use it.
- Covers the language and standard library together: You can use the library right from the start.
The authors proved this approach in their professional-education course at Stanford University, where students learned how to write substantial programs on their first day in the classroom.
Whether you are eager to get started writing your first C++ programs, or you are already using C++ and seeking deeper understanding, the authors' unique approach and expertise make Accelerated C++ an indispensable addition to your library.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
C++ en action
Résumé de l'éditeur
Les algorithmes : retirer des objets d'un conteneur, ordonner un intervalle. S'il est parfois instructif de réinventer la roue, le faire en C++ n'apportera que désagréments et perte de temps. Recourir à la bibliothèque standard de C++, aux bibliothèques Boost et aux solutions proposées ici feront gagner un temps précieux au programmeur et lui épargneront des lignes de codes inutiles, qu'il soit débutant ou plus expérimenté.
Édition : O'Reilly - 555 pages, 1re édition, 1er mai 2006
ISBN10 : 2841774074 - ISBN13 : 9782841774074
L'ensemble de ces solutions se veut standard en s'appuyant sur la STL ou sur d'autres bibliothèques comme Boost.
Chaque proposition est traitée selon le modèle : un problème, une solution et une discussion souvent assortie de conseils judicieux
Par exemple : pourquoi il est préférable dans une boucle de parcours d'utiliser la pré-incrémentation (++p) sur un itérateur au lieu de la post-incrémentation (p++).
Pourquoi privilégier l'accès aux données par un itérateur plutôt que par l'opérateur crochet dans le cas d'un vector.
Au fil des discussions et des présentations des différents conteneurs on prendra mieux conscience de l'impact de nos choix en matière de performance et surtout comment les améliorer.
Les exemples présentés sont simples et concis et bien commentés.
Le premier chapitre concerne la construction des programmes et de bibliothèques en C++ avec les principaux compilateurs en mode ligne de commande, l'installation de Boost et la création des bibliothèques dynamiques avec boost.build.
Passé ces étapes on entre dans le vif du sujet, chaque chapitre traite un sujet distinct et peut être lu séparément.
A travers tous les thèmes étudiés la bibliothèque standard STL est vraiment passée au crible avec, les conversions entre types, les manipulations sur les chaines de caractères, les conteneurs, les itérateurs, les différents algorithmes, la gestion des exceptions, les flux et fichiers etc..
Au bout du compte ce livre est un excellent moyen pour s'initier, voir se perfectionner à la manipulation de la STL ou encore chercher une recette toute faite.
Enfin, j'ai trouvé très intéressant la mise en ?vre de Boost sur des sujets comme la conversion des chaînes en numérique, la gestion du multithreading ou encore la sérialisation XML.
En conclusion voila un livre qui traite de sujets concrets à mettre en action dans notre quotidien de développement, et qui va trôner en bonne place sur mon bureau?
Commenter Signaler un problème
Les algorithmes : retirer des objets d'un conteneur, ordonner un intervalle. S'il est parfois instructif de réinventer la roue, le faire en C++ n'apportera que désagréments et perte de temps. Recourir à la bibliothèque standard de C++, aux bibliothèques Boost et aux solutions proposées ici feront gagner un temps précieux au programmeur et lui épargneront des lignes de codes inutiles, qu'il soit débutant ou plus expérimenté.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Le Langage C++
Initiez-vous à la programmation en C++
Résumé de l'éditeur
Grâce à cet ouvrage, initiez-vous rapidement au C++ en découvrant les principaux concepts du langage de programmation orientée objets : instructions, variables, types, fonctions, classes, méthodes, templates, conteneurs, etc. Ces concepts sont mis en oeuvre dans de nombreux exemples de codes qui sont analysés en détail pour vous permettre ensuite d'écrire vos propres programmes. Vous pourrez également vous exercer et tester vos connaissances dans les quizz et exercices présents dans chaque chapitre, dont vous trouverez les réponses à la fin de l'ouvrage.
Mis à jour pour la nouvelle norme 2011 du C++, ce best-seller vous guidera pas-à-pas dans votre apprentissage du C++.
Édition : Pearson Education - 816 pages, 7 décembre 2012
ISBN10 : 2744025461 - ISBN13 : 9782744025464
- Bien débuter en C++
- Anatomie d'un programme C++
- Variables et constantes
- Expressions et instructions
- Fonctions
- Programmation orientée objet
- Pointeurs et références
- Fonctions avancées
- Analyse et conception orientée objets
- Héritage
- Tableaux et chaînes
- Polymorphisme
- Classes et fonctions spéciales
- Concepts avancés d'héritage
- Flux
- Espaces de noms
- Templates
- Gestion des erreurs et exceptions
- Foncteurs et poncteurs
- Fonctions lambda
- Bits et exétrons
- Classes conteneurs
Bonnes pratiques
Il présente également diverses erreurs (détails). Certaines sont des raccourcis, faux, mais guère dommageables. D'autres risquent de donner des mauvaises habitudes.
Commenter Signaler un problème
Il est sauvagement sur-côté le bouquin.
Je vois des bêtises dans les chapitres lisibles en ligne chez amazon :
p37, il donne des tailles qui ne sont que des tailles plausibles et répandues
p101, il présente goto avant ... while \o/
p162, un petit coup de notation hongroise
p270, il montre l'intérêt du constructeur de copie en donnant un attribut pointeur à une classe. Sauf qu'il met deux attributs pointeurs et qu'il fait tout à la main -> pouf des mauvaises pratiques qui s'ancrent dans l'inconscient des développeurs
p282 (que je déduis de la 283), la surcharhe de op+ présentée est celle en fonction membre on dirait.
p286, l'opérateur d'affectation qui fait le test anti-autoaffectation, et qui ne traite pas le cas réel où la ressource doit être libérée et une nouvelle acquise (qui entraine des soucis potentiels d'exception-safety).
p290, opérateur de conversion implicite sans parenthèses sur les dangers et le patch en C++11.
Après le plan me fait dire que std::string est présentée après strcpy.
Vraiment ? 5/5 ?
Pourquoi ce n'est pas un habitué du forum C++ qui a procédé à cette critique ? Vous savez pourtant que nous sommes hyper difficiles sur le forum, non ?
« Le Langage C++: Initiez-vous à la programmation en C++ » de Jesse Liberty, Bradley Jones et Siddhartha Rao est un ouvrage de référence pour quiconque veut s'initier à la programmation en C++. En effet on se rend très rapidement compte qu’il est bien écrit, clair dans son propos et très accessible même aux débutants. Ceci n'altère cependant en rien le sérieux de ce livre, qui après des années de mises à jour continues et nombreuses rééditions, est véritablement devenu un "must-have". Autre avantage de ce livre, il présente le langage C++ sans s'appesantir sur les bases du langage C qui sont définitivement trop loin de la philosophie de la POO pour être réellement pertinentes pour quelqu'un désirant simplement programmer en C++. Pour finir on remarquera que cette publication est littéralement remplie d'exemples et d'exercices qui pourront occuper de très longues heures durant les plus assidus d'entre nous. Un livre à recommander donc aussi bien aux débutants, qui veulent découvrir les bases du C++, qu'aux programmeurs expérimentés désireux de suivre les évolutions de ce langage ou voulant simplement pouvoir disposer d’un véritable manuel de référence.
Apprendre le C++
Résumé de l'éditeur
Après une présentation détaillée de la syntaxe de base du langage (types de données, opérateurs, instructions de contrôle, fonctions, tableaux, pointeurs...), l'auteur insiste tout particulièrement sur la bonne compréhension des concepts objet et sur l'acquisition de méthodes de programmation rigoureuses.
Entièrement fondé sur la norme ANSI/ISO, l'ouvrage couvre tous les aspects du langage et de sa bibliothèque standard (SU ou Standard Template Library), et traite en profondeur des points les plus délicats auxquels est confronté un programmeur C++ lors de la création de ses propres classes et de la conception d'applications professionnelles.
Chaque notion nouvelle et chaque fonction du langage est illustrée de programmes complets dont le code source est fourni sur le site www.editions-eyrolles.com . Tout au long de l'ouvrage, des notes soulignent les différences majeures entre le C++ et Java, de manière à établir des passerelles entre les deux langages.
Édition : Eyrolles - 741 pages, 1re édition, 1er août 2007
ISBN10 : 2212121350 - ISBN13 : 9782212121353
- Présentation du langage C++
- Généralités sur le langage C++
- Les types de base de C++
- Opérateurs et expressions
- Les entrées-sorties conversationnelles de C++
- Les instructions de contrôle
- Les fonctions
- Les tableaux et les pointeurs
- Les chaînes de style C
- Les types structure, union et énumération
- Classes et objets
- Les propriétés des fonctions membres
- Construction, destruction et initialisation des objets
- Les fonctions amies
- La surdéfinition d'opérateurs
- Les conversions de type définies par l'utilisateur
- Les patrons de fonctions
- Les patrons de classes
- L'héritage simple
- L'héritage multiple
- Les fonctions virtuelles et le polymorphisme
- Les flots
- La gestion des exceptions
- Généralités sur la bibliothèque standard
- Les conteneurs séquentiels
- Les conteneurs associatifs
- Les algorithmes standard
- La classe string
- Les outils numériques
- Les espaces de noms
- Le préprocesseur et l'instruction typedef
La première partie de ce livre concerne l'apprentissage du langage C++ à proprement parler, sans la bibliothèque standard qui va avec. Les concepts sont introduits progressivement, avec de nombreux exemples. La compréhension est vraiment aisée, d'autant aidée par une bonne structuration des notions - je soulignerai en particulier le fait que la POO ne soit introduite qu'après que tout le reste a été bien assimilé, ce qui est très important.
La seconde partie, quant à elle, explique l'utilisation des principales classes de la STL, à savoir les conteneurs, la classe string et les outils numériques. En effet, C++ n'est pas qu'un langage, c'est aussi une bibliothèque standard riche, qu'il est important de maîtriser.
L'une comme l'autre de ces parties sont écrites aussi bien pour une lecture de bout en bout que pour l'usage en tant que référence. Ce qui est une qualité appréciable, puisque vous avez dans les mains deux livres pour le prix d'un, si j'ose dire.
En revanche, si cet ouvrage est bien structuré dans l'ensemble, il a de gros défauts dans le détail. En particulier, l'auteur propose de nombreuses approches du langage qui ne sont pas du tout recommandables, voire à proscrire ; surtout en ce qui concerne le style d'écriture, et les "bonnes manières" à adopter. On y trouve même des erreurs de standard, alors que le résumé indique que l'auteur suit ceux-ci avec rigueur !
Or, être rigoureux dans sa programmation est quelque chose d'extrêmement important.
Il ne faut pas oublier, enfin, que ce livre n'est pas à destination du débutant complet en programmation, mais bien adressé au développeur connaissant déjà un autre langage.
Aussi, on pourra certainement apprécier ce livre si on sait avoir un oeil critique sur le style, par exemple si l'on a une grande rigueur dans le langage d'où l'on vient. Mais dans le cas contraire, ce n'est probablement pas une bonne idée.
Sébastien Doeraene
Commenter Signaler un problème
Après une présentation détaillée de la syntaxe de base du langage (types de données, opérateurs, instructions de contrôle, fonctions, tableaux, pointeurs...), l'auteur insiste tout particulièrement sur la bonne compréhension des concepts objet et sur l'acquisition de méthodes de programmation rigoureuses.
Entièrement fondé sur la norme ANSI/ISO, l'ouvrage couvre tous les aspects du langage et de sa bibliothèque standard (SU ou Standard Template Library), et traite en profondeur des points les plus délicats auxquels est confronté un programmeur C++ lors de la création de ses propres classes et de la conception d'applications professionnelles.
Chaque notion nouvelle et chaque fonction du langage est illustrée de programmes complets dont le code source est fourni sur le site www.editions-eyrolles.com . Tout au long de l'ouvrage, des notes soulignent les différences majeures entre le C++ et Java, de manière à établir des passerelles entre les deux langages.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Programmez avec le langage C++
Toute la puissance du langage C++ expliquée aux débutants
Édition : Eyrolles - 670 pages, 2e édition, 25 mars 2013
ISBN10 : 9782953527858 - ISBN13 : 9791090085916
Commenter Signaler un problème
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?