Home Page Icon
Home Page
Table of Contents for
Professional C++
Close
Professional C++
by Scott J. Kleper, Nicholas A. Solter, Marc Gregoire
Professional C++, Second Edition
Cover
Contents
Introduction
Part I: Introduction to Professional C++
Chapter 1: A Crash Course in C++
The Basics of C++
Diving Deeper into C++
C++ as an Object-Oriented Language
The Standard Library
Your First Useful C++ Program
Summary
Chapter 2: Designing Professional C++ Programs
What Is Programming Design?
The Importance of Programming Design
What’s Different about C++ Design?
Two Rules for C++ Design
Reusing Code
Designing with Patterns and Techniques
Designing a Chess Program
Summary
Chapter 3: Designing with Objects
Am I Thinking Procedurally?
The Object-Oriented Philosophy
Living in a World of Objects
Object Relationships
Abstraction
Summary
Chapter 4: Designing for Reuse
The Reuse Philosophy
How to Design Reusable Code
Summary
Chapter 5: Coding with Style
The Importance of Looking Good
Documenting Your Code
Decomposition
Naming
Using Language Features with Style
Formatting
Stylistic Challenges
Summary
Part II: C++ Coding the Professional Way
Chapter 6: Gaining Proficiency With Classes and Objects
Introducing the Spreadsheet Example
Writing Classes
Object Life Cycles
Summary
Chapter 7: Mastering Classes and Objects
Dynamic Memory Allocation in Objects
Different Kinds of Data Members
More about Methods
Nested Classes
Enumerated Types Inside Classes
Friends
Operator Overloading
Building Stable Interfaces
Summary
Chapter 8: Discovering Inheritance Techniques
Building Classes with Inheritance
Inheritance for Reuse
Respect Your Parents
Inheritance for Polymorphism
Multiple Inheritance
Interesting and Obscure Inheritance Issues
Summary
Chapter 9: Understanding C++ Quirks and Oddities
References
Keyword Confusion
Types and Casts
Scope Resolution
C++11
Header Files
C Utilities
Summary
Chapter 10: Handling Errors
Errors and Exceptions
Exception Mechanics
Exceptions and Polymorphism
Stack Unwinding and Cleanup
Common Error-Handling Issues
Putting It All Together
Summary
Chapter 11: Delving into the Standard Library
Coding Principles
Overview of the C++ Standard Library
Summary
Chapter 12: Understanding Containers and Iterators
Containers Overview
Sequential Containers
Container Adapters
Associative Containers
Unordered Associative Containers/Hash Tables
Other Containers
Summary
Chapter 13: Mastering STL Algorithms
Overview of Algorithms
Lambda Expressions
Function Objects
Algorithm Details
Algorithms Example: Auditing Voter Registrations
Summary
Chapter 14: Using Strings and Regular Expressions
Dynamic Strings
Localization
Regular Expressions
Summary
Chapter 15: Demystifying C++ I/O
Using Streams
String Streams
File Streams
Bidirectional I/O
Summary
Chapter 16: Additional Library Utilities
std::function
Ratios
The Chrono Library
Random Number Generation
Tuples
Summary
Chapter 17: Customizing and Extending the STL
Allocators
Iterator Adapters
Extending the STL
Summary
Part III: Mastering Advanced Features of C++
Chapter 18: Overloading C++ Operators
Overview of Operator Overloading
Overloading the Arithmetic Operators
Overloading the Bitwise and Binary Logical Operators
Overloading the Insertion and Extraction Operators
Overloading the Subscripting Operator
Overloading the Function Call Operator
Overloading the Dereferencing Operators
Writing Conversion Operators
Overloading the Memory Allocation and Deallocation Operators
Summary
Chapter 19: Writing Generic Code with Templates
Overview of Templates
Class Templates
Function Templates
Summary
Chapter 20: Advanced Templates
More about Template Parameters
Template Class Partial Specialization
Emulating Function Partial Specialization with Overloading
Template Recursion
Type Inference
Variadic Templates
Metaprogramming
Summary
Chapter 21: Effective Memory Management
Working with Dynamic Memory
Array-Pointer Duality
Low-Level Memory Operations
Smart Pointers
Common Memory Pitfalls
Summary
Chapter 22: Multithreaded Programming with C++
Introduction
Atomic Operations Library
Threads
Mutual Exclusion
Condition Variables
Futures
Example: Multithreaded Logger Class
Thread Pools
Threading Design and Best Practices
Summary
Part IV: C++ Software Engineering
Chapter 23: Maximizing Software Engineering Methods
The Need for Process
Software Life Cycle Models
Software Engineering Methodologies
Building Your Own Process and Methodology
Source Code Control
Summary
Chapter 24: Writing Efficient C++
Overview of Performance and Efficiency
Language-Level Efficiency
Design-Level Efficiency
Profiling
Summary
Chapter 25: Developing Cross-Platform and Cross-Language Applications
Cross-Platform Development
Cross-Language Development
Summary
Chapter 26: Becoming Adept at Testing
Quality Control
Unit Testing
Higher-Level Testing
Tips for Successful Testing
Summary
Chapter 27: Conquering Debugging
The Fundamental Law of Debugging
Bug Taxonomies
Avoiding Bugs
Planning for Bugs
Debugging Techniques
Summary
Chapter 28: Incorporating Design Techniques and Frameworks
“I Can Never Remember How to . . .”
There Must Be a Better Way
Object-Oriented Frameworks
Summary
Chapter 29: Applying Design Patterns
The Iterator Pattern
The Singleton Pattern
The Factory Pattern
The Proxy Pattern
The Adapter Pattern
The Decorator Pattern
The Chain of Responsibility Pattern
The Observer Pattern
Summary
Appendix A: C++ Interviews
Appendix B: Annotated Bibliography
Appendix C: Standard Library Header Files
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Introduction
Visit
www.safaribooksonline.com/wrox1
to get started
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset