From the eBook - Fourth edition.
Programming with C++ Part 5: C++ Software Engineering Chapter 24: Maximizing Software Engineering Methods Chapter 25: Writing Efficient C++ Chapter 26: Conquering Debugging Chapter 27: Become adept at testing Chapter 28: Incorporating Design techniques and frameworks; Chapter 29: Applying design patterns Chapter 30: Developing Cross-Platform and Cross-Language Applications; Back Matter Appendix A: C++ Interviews Appendix B: Annotated Bibliography Appendix C: Standard Library Header Files.
Professional C++; Copyright; Contents; Introduction; Who This Book Is For; What This Book Covers; How This Book Is Structured; What You Need to Use This Book; Microsoft Visual C++; GCC; Conventions; Source Code; Errata; P2P. Wrox.Com; Part I: Introduction to Professional C++; Chapter 1: A Crash Course in C++ and the STL; The Basics of C++; The Obligatory Hello, World; Namespaces; Variables; Literals; Operators; Types; Conditionals; Arrays; Loops; Functions; Type Inference Part 1; Those Are the Basics; Diving Deeper into C++; Pointers and Dynamic Memory; References; Strings in C++; Exceptions.
The Many Uses of constType Inference Part 2; C++ as an Object-Oriented Language; Defining a Class; The Standard Library; std::vector; Your First Useful C++ Program; An Employee Records System; The Employee Class; The Database Class; The User Interface; Evaluating the Program; Summary; Chapter 2: Working with Strings; Dynamic Strings; C-Style Strings; String Literals; The C++ string Class; Raw String Literals; Nonstandard Strings; Summary; Chapter 3: Coding with Style; The Importance of Looking Good; Thinking Ahead; Elements of Good Style; Documenting Your Code; Reasons to Write Comments.
Commenting StylesComments in This Book; Decomposition; Decomposition through Refactoring; Decomposition by Design; Decomposition in This Book; Naming; Choosing a Good Name; Naming Conventions; Using Language Features with Style; Use Constants; Use References Instead of Pointers; Use Custom Exceptions; Formatting; The Curly Brace Alignment Debate; Coming to Blows over Spaces and Parentheses; Spaces and Tabs; Stylistic Challenges; Summary; Part II: Professional C++ Software Design; Chapter 4: Designing Professional C++ Programs; What Is Programming Design?; The Importance of Programming Design.
Designing for C++Two Rules for C++ Design; Abstraction; Reuse; Reusing Code; A Note on Terminology; Deciding Whether or Not to Reuse Code; Strategies for Reusing Code; Bundling Third-Party Applications; Open-Source Libraries; The C++ Standard Library; Designing with Patterns and Techniques; Designing a Chess Program; Requirements; Design Steps; Summary; Chapter 5: Designing with Objects; Am I Thinking Procedurally?; The Object-Oriented Philosophy; Classes; Components; Properties; Behaviors; Bringing It All Together; Living in a World of Objects; Overobjectification; Overly General Objects.
Object RelationshipsThe Has-A Relationship; The Is-A Relationship (Inheritance); The Fine Line between Has-A and Is-A; The Not-A Relationship; Hierarchies; Multiple Inheritance; Mixin Classes; Abstraction; Interface versus Implementation; Deciding on an Exposed Interface; Designing a Successful Abstraction; Summary; Chapter 6: Designing for Reuse; The Reuse Philosophy; How to Design Reusable Code; Use Abstraction; Structure Your Code for Optimal Reuse; Design Usable Interfaces; Reconciling Generality and Ease of Use; Summary; Part III: Coding the Professional Way.