Home Page Icon
Home Page
Table of Contents for
END USER LICENSE AGREEMENT
Close
END USER LICENSE AGREEMENT
by Marc Gregoire
Professional C++, 4th Edition
COVER
TITLE PAGE
INTRODUCTION
WHO THIS BOOK IS FOR
WHAT THIS BOOK COVERS
HOW THIS BOOK IS STRUCTURED
WHAT YOU NEED TO USE THIS BOOK
CONVENTIONS
SOURCE CODE
ERRATA
NOTES
PART I: Introduction to Professional C++
1 A Crash Course in C++ and the Standard Library
THE BASICS OF C++
DIVING DEEPER INTO C++
C++ AS AN OBJECT-ORIENTED LANGUAGE
UNIFORM INITIALIZATION
THE STANDARD LIBRARY
YOUR FIRST USEFUL C++ PROGRAM
SUMMARY
NOTE
2 Working with Strings and String Views
DYNAMIC STRINGS
SUMMARY
3 Coding with Style
THE IMPORTANCE OF LOOKING GOOD
DOCUMENTING YOUR CODE
DECOMPOSITION
NAMING
USING LANGUAGE FEATURES WITH STYLE
FORMATTING
STYLISTIC CHALLENGES
SUMMARY
PART II: Professional C++ Software Design
4 Designing Professional C++ Programs
WHAT IS PROGRAMMING DESIGN?
THE IMPORTANCE OF PROGRAMMING DESIGN
DESIGNING FOR C++
TWO RULES FOR C++ DESIGN
REUSING EXISTING CODE
DESIGNING A CHESS PROGRAM
SUMMARY
5 Designing with Objects
AM I THINKING PROCEDURALLY?
THE OBJECT-ORIENTED PHILOSOPHY
LIVING IN A WORLD OF OBJECTS
OBJECT RELATIONSHIPS
ABSTRACTION
SUMMARY
6 Designing for Reuse
THE REUSE PHILOSOPHY
HOW TO DESIGN REUSABLE CODE
SUMMARY
PART III: C++ Coding the Professional Way
7 Memory Management
WORKING WITH DYNAMIC MEMORY
ARRAY-POINTER DUALITY
LOW-LEVEL MEMORY OPERATIONS
SMART POINTERS
COMMON MEMORY PITFALLS
SUMMARY
NOTE
8 Gaining Proficiency with Classes and Objects
INTRODUCING THE SPREADSHEET EXAMPLE
WRITING CLASSES
OBJECT LIFE CYCLES
SUMMARY
9 Mastering Classes and Objects
FRIENDS
DYNAMIC MEMORY ALLOCATION IN OBJECTS
MORE ABOUT METHODS
DIFFERENT KINDS OF DATA MEMBERS
NESTED CLASSES
ENUMERATED TYPES INSIDE CLASSES
OPERATOR OVERLOADING
BUILDING STABLE INTERFACES
SUMMARY
10 Discovering Inheritance Techniques
BUILDING CLASSES WITH INHERITANCE
INHERITANCE FOR REUSE
RESPECT YOUR PARENTS
INHERITANCE FOR POLYMORPHISM
MULTIPLE INHERITANCE
INTERESTING AND OBSCURE INHERITANCE ISSUES
SUMMARY
11 C++ Quirks, Oddities, and Incidentals
REFERENCES
KEYWORD CONFUSION
TYPES AND CASTS
SCOPE RESOLUTION
ATTRIBUTES
USER-DEFINED LITERALS
HEADER FILES
C UTILITIES
SUMMARY
NOTES
12 Writing Generic Code with Templates
OVERVIEW OF TEMPLATES
CLASS TEMPLATES
FUNCTION TEMPLATES
VARIABLE TEMPLATES
SUMMARY
13 Demystifying C++ I/O
USING STREAMS
STRING STREAMS
FILE STREAMS
BIDIRECTIONAL I/O
SUMMARY
14 Handling Errors
ERRORS AND EXCEPTIONS
EXCEPTION MECHANICS
EXCEPTIONS AND POLYMORPHISM
RETHROWING EXCEPTIONS
STACK UNWINDING AND CLEANUP
COMMON ERROR-HANDLING ISSUES
PUTTING IT ALL TOGETHER
SUMMARY
NOTES
15 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
NOTE
16 Overview of the C++ Standard Library
CODING PRINCIPLES
OVERVIEW OF THE C++ STANDARD LIBRARY
SUMMARY
NOTE
17 Understanding Containers and Iterators
CONTAINERS OVERVIEW
SEQUENTIAL CONTAINERS
CONTAINER ADAPTORS
ORDERED ASSOCIATIVE CONTAINERS
UNORDERED ASSOCIATIVE CONTAINERS OR HASH TABLES
OTHER CONTAINERS
SUMMARY
18 Mastering Standard Library Algorithms
OVERVIEW OF ALGORITHMS
STD::FUNCTION
LAMBDA EXPRESSIONS
FUNCTION OBJECTS
ALGORITHM DETAILS
ALGORITHMS EXAMPLE: AUDITING VOTER REGISTRATIONS
SUMMARY
NOTE
19 String Localization and Regular Expressions
LOCALIZATION
REGULAR EXPRESSIONS
SUMMARY
20 Additional Library Utilities
RATIOS
THE CHRONO LIBRARY
RANDOM NUMBER GENERATION
OPTIONAL
VARIANT
ANY
TUPLES
FILESYSTEM SUPPORT LIBRARY
SUMMARY
NOTE
PART IV: Mastering Advanced Features of C++
21 Customizing and Extending the Standard Library
ALLOCATORS
STREAM ITERATORS
ITERATOR ADAPTORS
EXTENDING THE STANDARD LIBRARY
SUMMARY
NOTE
22 Advanced Templates
MORE ABOUT TEMPLATE PARAMETERS
CLASS TEMPLATE PARTIAL SPECIALIZATION
EMULATING FUNCTION PARTIAL SPECIALIZATION WITH OVERLOADING
TEMPLATE RECURSION
VARIADIC TEMPLATES
METAPROGRAMMING
SUMMARY
23 Multithreaded Programming with C++
INTRODUCTION
THREADS
ATOMIC OPERATIONS LIBRARY
MUTUAL EXCLUSION
CONDITION VARIABLES
FUTURES
EXAMPLE: MULTITHREADED LOGGER CLASS
THREAD POOLS
THREADING DESIGN AND BEST PRACTICES
SUMMARY
NOTES
PART V: C++ Software Engineering
24 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
25 Writing Efficient C++
OVERVIEW OF PERFORMANCE AND EFFICIENCY
LANGUAGE-LEVEL EFFICIENCY
DESIGN-LEVEL EFFICIENCY
PROFILING
SUMMARY
26 Becoming Adept at Testing
QUALITY CONTROL
UNIT TESTING
HIGHER-LEVEL TESTING
TIPS FOR SUCCESSFUL TESTING
SUMMARY
NOTES
27 Conquering Debugging
THE FUNDAMENTAL LAW OF DEBUGGING
BUG TAXONOMIES
AVOIDING BUGS
PLANNING FOR BUGS
STATIC ASSERTIONS
DEBUGGING TECHNIQUES
SUMMARY
NOTES
28 Incorporating Design Techniques and Frameworks
“I CAN NEVER REMEMBER HOW TO…”
THERE MUST BE A BETTER WAY
OBJECT-ORIENTED FRAMEWORKS
SUMMARY
29 Applying Design Patterns
THE ITERATOR PATTERN
THE SINGLETON PATTERN
THE ABSTRACT FACTORY PATTERN
THE PROXY PATTERN
THE ADAPTOR PATTERN
THE DECORATOR PATTERN
THE CHAIN OF RESPONSIBILITY PATTERN
THE OBSERVER PATTERN
SUMMARY
NOTE
30 Developing Cross-Platform and Cross-Language Applications
CROSS-PLATFORM DEVELOPMENT
CROSS-LANGUAGE DEVELOPMENT
SUMMARY
A: C++ Interviews
CHAPTER 1: A CRASH COURSE IN C++ AND THE STANDARD LIBRARY
CHAPTERS 2 AND 19: WORKING WITH STRINGS AND STRING VIEWS, STRING LOCALIZATION, AND REGULAR EXPRESSIONS
CHAPTER 3: CODING WITH STYLE
CHAPTER 4: DESIGNING PROFESSIONAL C++ PROGRAMS
CHAPTER 5: DESIGNING WITH OBJECTS
CHAPTER 6: DESIGNING FOR REUSE
CHAPTER 7: MEMORY MANAGEMENT
CHAPTERS 8 AND 9: GAINING PROFICIENCY WITH CLASSES AND OBJECTS, AND MASTERING CLASSES AND OBJECTS
CHAPTER 10: DISCOVERING INHERITANCE TECHNIQUES
CHAPTER 11: C++ QUIRKS, ODDITIES, AND INCIDENTALS
CHAPTERS 12 AND 22: WRITING GENERIC CODE WITH TEMPLATES, AND ADVANCED TEMPLATES
CHAPTER 13: DEMYSTIFYING C++ I/O
CHAPTER 14: HANDLING ERRORS
CHAPTER 15: OVERLOADING C++ OPERATORS
CHAPTERS 16, 17, 18, AND 21: THE STANDARD LIBRARY
CHAPTER 20: ADDITIONAL LIBRARY UTILITIES
CHAPTER 23: MULTITHREADED PROGRAMMING WITH C++
CHAPTER 24: MAXIMIZING SOFTWARE ENGINEERING METHODS
CHAPTER 25: WRITING EFFICIENT C++
CHAPTER 26: BECOMING ADEPT AT TESTING
CHAPTER 27: CONQUERING DEBUGGING
CHAPTER 28: INCORPORATING DESIGN TECHNIQUES AND FRAMEWORKS
CHAPTER 29: APPLYING DESIGN PATTERNS
CHAPTER 30: DEVELOPING CROSS-PLATFORM AND CROSS-LANGUAGE APPLICATIONS
B: Annotated Bibliography
C++
UNIFIED MODELING LANGUAGE
ALGORITHMS AND DATA STRUCTURES
RANDOM NUMBERS
OPEN-SOURCE SOFTWARE
SOFTWARE ENGINEERING METHODOLOGY
PROGRAMMING STYLE
COMPUTER ARCHITECTURE
EFFICIENCY
TESTING
DEBUGGING
DESIGN PATTERNS
OPERATING SYSTEMS
MULTITHREADED PROGRAMMING
C: Standard Library Header Files
THE C STANDARD LIBRARY
CONTAINERS
ALGORITHMS, ITERATORS, AND ALLOCATORS
GENERAL UTILITIES
MATHEMATICAL UTILITIES
EXCEPTIONS
I/O STREAMS
THREADING SUPPORT LIBRARY
D: Introduction to UML
TYPES OF DIAGRAMS
CLASS DIAGRAMS
END USER LICENSE AGREEMENT
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
ACKNOWLEDGMENTS
WILEY END USER LICENSE AGREEMENT
Go to
www.wiley.com/go/eula
to access Wiley’s ebook EULA.
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