Synopses & Reviews
Master the latest release of the C++ language: C++11C++ is often the language of choice for writing fast, powerful, and enterprise-class object-oriented programs, be it games or major commercial software applications. However, there's no two ways around it: C++ can be difficult to master. With this no-nonsense book, you will learn to conquer the latest version of the C++ language: C++11. The authors share real-world examples, decipher little-known features of C++, and reveal the significant changes to C++ that accompany the latest release. Ultimately, you'll discover programming methodologies, reusable design patterns, and good programming style that will increase the quality of your code and improve your programming efficiency.
Professional C++, 2nd Edition:
Offers detailed code examples that you can plug into your own code
Takes you on a technical tour of C++ and the STL, and explores the unusual and quirky aspects of this language
Exposes best practices for using the more advanced features of C++, including operator overloading, managing memory, writing templates, and writing multithreaded code
Discusses techniques for writing cross-language and cross-platform code
Teaches you the importance of code reuse as well as the nuances of writing readable C++ code
Wrox Professional guides are written by working developers to address everyday needs. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
wrox.com
Programmer Forums
Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world.
Code Downloads
Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use.
Read More
Find articles, e-books, sample chapters, and tables of contents for hundreds of books, and more reference resources on programming topics that matter to you.
Synopsis
Essential reading for experienced developers who are determined to master the latest release of C++Although C++ is often the language of choice from game programming to major commercial software applications, it is also one of the most difficult to master. With this no-nonsense book, you will learn to conquer the latest release of C++. The author deciphers little-known features of C++, shares detailed code examples that you can then plug into your own code, and reveals the significant changes to C++ that accompany the latest release. You'll discover how to design and build applications that solve real-world problems and then implement the solution using the full capabilities of the language.
Appeals to experienced developers who are looking for a higher level of learning
- Drills down the extensive changes to the latest C++ standard, C++11, including enhancements made to run-time performance, standard library, language usability, and core language
- Zeroes in on explaining the more poorly understood elements of the C++ feature set and addresses common pitfalls to avoid
- Includes case studies that feature extensive, working code that has been tested on Windows and Linux platforms
- Intertwines text with useful tips, tricks, and workarounds
Packed with best practices for programming, testing, and debugging applications, this book is vital for taking your C++ skills to the next level.
About the Author
Marc Gregoire is a Microsoft Visual C++ MVP, an active contributor to CodeGuru, and blogs at www.nuonsoft.com/blog/. Marc is a software architect, worked for Siemens and Nokia Siemens Networks as a software consultant, and now works for Nikon Metrology.
Nicholas A. Solter is an application architect at ContextOptional, Inc., a social media advertising company.
Scott J. Kleper is cofounder and CTO of ContextOptional, Inc.
Table of Contents
INTRODUCTION xxv
PART I: INTRODUCTION TO PROFESSIONAL C++
CHAPTER 1: A CRASH COURSE IN C++ 3
CHAPTER 2: DESIGNING PROFESSIONAL C++ PROGRAMS 49
CHAPTER 3: DESIGNING WITH OBJECTS 77
CHAPTER 4: DESIGNING FOR REUSE 97
CHAPTER 5: CODING WITH STYLE 111
PART II: C++ CODING THE PROFESSIONAL WAY
CHAPTER 6: GAINING PROFICIENCY WITH CLASSES AND OBJECTS 133
CHAPTER 7: MASTERING CLASSES AND OBJECTS 169
CHAPTER 8: DISCOVERING INHERITANCE TECHNIQUES 211
CHAPTER 9: UNDERSTANDING C++ QUIRKS AND ODDITIES 267
CHAPTER 10: HANDLING ERRORS 317
CHAPTER 11: DELVING INTO THE STANDARD LIBRARY 361
CHAPTER 12: UNDERSTANDING CONTAINERS AND ITERATORS 385
CHAPTER 13: MASTERING STL ALGORITHMS 457
CHAPTER 14: USING STRINGS AND REGULAR EXPRESSIONS 509
CHAPTER 15: DEMYSTIFYING C++ I/O 545
CHAPTER 16: ADDITIONAL LIBRARY UTILITIES 569
CHAPTER 17: CUSTOMIZING AND EXTENDING THE STL 595
PART III: MASTERING ADVANCED FEATURES OF C++
CHAPTER 18: OVERLOADING C++ OPERATORS 645
CHAPTER 19: WRITING GENERIC CODE WITH TEMPLATES 683
CHAPTER 20: ADVANCED TEMPLATES 715
CHAPTER 21: EFFECTIVE MEMORY MANAGEMENT 759
CHAPTER 22: MULTITHREADED PROGRAMMING WITH C++ 797
PART IV: C++ SOFTWARE ENGINEERING
CHAPTER 23: MAXIMIZING SOFTWARE ENGINEERING METHODS 839
CHAPTER 24: WRITING EFFICIENT C++ 859
CHAPTER 25: DEVELOPING CROSS-PLATFORM AND CROSS-LANGUAGE APPLICATIONS 883
CHAPTER 26: BECOMING ADEPT AT TESTING 905
CHAPTER 27: CONQUERING DEBUGGING 927
CHAPTER 28: INCORPORATING DESIGN TECHNIQUES AND FRAMEWORKS 967
CHAPTER 29: APPLYING DESIGN PATTERNS 985
APPENDIX A: C++ INTERVIEWS 1013
APPENDIX B: ANNOTATED BIBLIOGRAPHY 1035
APPENDIX C: STANDARD LIBRARY HEADER FILES 1045
INDEX 1053