Expand your C++ knowledge quickly and efficiently with this advanced resource
In the newly revised sixth edition of Professional C++, veteran software engineer and developer Marc Gregoire delivers yet another volume that raises the bar for advanced programming manuals. Covering almost all features of the new C++ standard codenamed C++23, the book offers case studies with working code that’s been tested on Windows and Linux.
As the leading resource for dedicated and knowledgeable professionals seeking to advance their C++ skills, this book provides resources that help readers:
- Master new features of the latest standard, C++23
- Maximize C++ capabilities with effective design solutions
- Discover little-known elements and learn about pitfalls and what practices to avoid
- Grasp testing and debugging best practices
- Learn about tips and tricks for efficiency and performance
C++ is a complex language. Professional C++, 6th Edition, allows dedicated practitioners to remain current and abreast of the latest developments and advances.
Table of Contents
Introduction xli
Part I: Introduction to Professional C++
Chapter 1: a Crash Course in C++ and the Standard Library 3
Chapter 2: Working with Strings and String Views 87
Chapter 3: Coding with Style 119
Part II: Professional C++ Software Design
Chapter 4: Designing Professional C++ Programs 145
Chapter 5: Designing with Classes 177
Chapter 6: Designing for Reuse 197
Part III: C++ Coding the Professional Way
Chapter 7: Memory Management 221
Chapter 8: Gaining Proficiency with Classes and Objects 259
Chapter 9: Mastering Classes and Objects 295
Chapter 10: Discovering Inheritance Techniques 357
Chapter 11: Modules, Header Files, and Miscellaneous Topics 421
Chapter 12: Writing Generic Code with Templates 451
Chapter 13: Demystifying C++ I/o 501
Chapter 14: Handling Errors 533
Chapter 15: Overloading C++ Operators 577
Chapter 16: Overview of the C++ Standard Library 619
Chapter 17: Understanding Iterators and The Ranges Library 653
Chapter 18: Standard Library Containers 683
Chapter 19: Function Pointers, Function Objects, and Lambda Expressions 761
Chapter 20: Mastering Standard Library Algorithms 791
Chapter 21: String Localization and Regular Expressions 831
Chapter 22: Date and Time Utilities 861
Chapter 23: Random Number Facilities 879
Chapter 24: Additional Vocabulary Types 891
Part IV: Mastering Advanced Features of C++
Chapter 25: Customizing and Extending the Standard Library 909
Chapter 26: Advanced Templates 945
Chapter 27: Multithreaded Programming with C++ 985
Part V: C++ Software Engineering
Chapter 28: Maximizing Software Engineering Methods 1043
Chapter 29: Writing Efficient C++ 1065
Chapter 30: Becoming Adept at Testing 1093
Chapter 31: Conquering Debugging 1117
Chapter 32: Incorporating Design Techniques And Frameworks 1155
Chapter 33: Applying Design Patterns 1179
Chapter 34: Developing Cross- Platform and Cross- Language Applications 1211
Part VI: Appendices
Appendix A: C++ Interviews 1239
Appendix B: Annotated Bibliography 1265
Appendix C: Standard Library Header Files 1277
Appendix D: Introduction to Uml 1287
Index 1293