Professional C++ 6th Edition by Marc Gregoire – Ebook PDF Instant Download/Delivery: 9781394193172 ,1394193173
Full download Professional C++ 6th Edition after payment

Product details:
ISBN 10: 1394193173
ISBN 13: 9781394193172
Author: Marc Gregoire
Expand your C++ toolkit 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 the major new revisions contained in the new C++ standard codenamed C++23, the book offers case studies with working code that’s been tested in Windows and Linux.
The leading resource for dedicated and knowledgeable professionals seeking to advance their C++ skills, this book provides resources that help readers:
- Maximize C++ capabilities with effective design solutions
- Master little-known elements and learn what practices to avoid
- Adopt new workarounds and testing/debugging best practices
- Use real-world program segments in your own applications
C++ is a complex and unforgiving language. Professional C++, 6th Edition, allows dedicated practitioners to remain current and abreast of the latest developments and advances.
Professional C++ 6th Edition Table of contents:
PART I: Introduction to Professional C++
1 A Crash Course in C++ and the Standard Library
C++ CRASH COURSE
YOUR FIRST BIGGER C++ PROGRAM
SUMMARY
EXERCISES
NOTE
2 Working with Strings and String Views
DYNAMIC STRINGS
FORMATTING AND PRINTING STRINGS
SUMMARY
EXERCISES
NOTES
3 Coding with Style
THE IMPORTANCE OF LOOKING GOOD
DOCUMENTING YOUR CODE
DECOMPOSITION
NAMING
USING LANGUAGE FEATURES WITH STYLE
FORMATTING
STYLISTIC CHALLENGES
SUMMARY
EXERCISES
NOTE
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 YOUR OWN C++ DESIGNS
REUSING EXISTING CODE
DESIGNING A CHESS PROGRAM
SUMMARY
EXERCISES
5 Designing with Classes
AM I THINKING PROCEDURALLY?
THE OBJECT-ORIENTED PHILOSOPHY
LIVING IN A WORLD OF CLASSES
CLASS RELATIONSHIPS
SUMMARY
EXERCISES
6 Designing for Reuse
THE REUSE PHILOSOPHY
HOW TO DESIGN REUSABLE CODE
SUMMARY
EXERCISES
NOTE
PART III: C++ Coding the Professional Way
7 Memory Management
WORKING WITH DYNAMIC MEMORY
ARRAY-POINTER DUALITY
LOW-LEVEL MEMORY OPERATIONS
COMMON MEMORY PITFALLS
SMART POINTERS
SUMMARY
EXERCISES
NOTES
8 Gaining Proficiency with Classes and Objects
INTRODUCING THE SPREADSHEET EXAMPLE
WRITING CLASSES
UNDERSTANDING OBJECT LIFE CYCLES
SUMMARY
EXERCISES
9 Mastering Classes and Objects
FRIENDS
DYNAMIC MEMORY ALLOCATION IN OBJECTS
MORE ABOUT MEMBER FUNCTIONS
CONSTEXPR AND CONSTEVAL
DIFFERENT KINDS OF DATA MEMBERS
NESTED CLASSES
ENUMERATIONS INSIDE CLASSES
OPERATOR OVERLOADING
BUILDING STABLE INTERFACES
SUMMARY
EXERCISES
NOTES
10 Discovering Inheritance Techniques
BUILDING CLASSES WITH INHERITANCE
INHERITANCE FOR REUSE
RESPECT YOUR PARENTS
INHERITANCE FOR POLYMORPHISM
MULTIPLE INHERITANCE
INTERESTING AND OBSCURE INHERITANCE ISSUES
CASTS
SUMMARY
EXERCISES
11 Modules, Header Files, and Miscellaneous Topics
MODULES
PREPROCESSOR DIRECTIVES
LINKAGE
HEADER FILES
FEATURE-TEST MACROS FOR CORE LANGUAGE FEATURES
THE STATIC KEYWORD
C-STYLE VARIABLE-LENGTH ARGUMENT LISTS
SUMMARY
EXERCISES
12 Writing Generic Code with Templates
OVERVIEW OF TEMPLATES
CLASS TEMPLATES
FUNCTION TEMPLATES
VARIABLE TEMPLATES
CONCEPTS
SUMMARY
EXERCISES
13 Demystifying C++ I/O
USING STREAMS
STRING STREAMS
SPAN-BASED STREAMS
FILE STREAMS
BIDIRECTIONAL I/O
FILESYSTEM SUPPORT LIBRARY
SUMMARY
EXERCISES
14 Handling Errors
ERRORS AND EXCEPTIONS
EXCEPTION MECHANICS
EXCEPTIONS AND POLYMORPHISM
RETHROWING EXCEPTIONS
STACK UNWINDING AND CLEANUP
SOURCE LOCATION
STACK TRACE
COMMON ERROR-HANDLING ISSUES
EXCEPTION SAFETY GUARANTEES
SUMMARY
EXERCISES
NOTE
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
OVERLOADING USER-DEFINED LITERAL OPERATORS
SUMMARY
EXERCISES
16 Overview of the C++ Standard Library
CODING PRINCIPLES
OVERVIEW OF THE C++ STANDARD LIBRARY
SUMMARY
EXERCISES
17 Understanding Iterators and the Ranges Library
ITERATORS
STREAM ITERATORS
ITERATOR ADAPTERS
RANGES
SUMMARY
EXERCISES
NOTE
18 Standard Library Containers
CONTAINERS OVERVIEW
SEQUENTIAL CONTAINERS
SEQUENTIAL VIEWS
CONTAINER ADAPTERS
ASSOCIATIVE CONTAINERS
OTHER CONTAINERS
SUMMARY
EXERCISES
19 Function Pointers, Function Objects, and Lambda Expressions
FUNCTION POINTERS
POINTERS TO MEMBER FUNCTIONS (AND DATA MEMBERS)
FUNCTION OBJECTS
POLYMORPHIC FUNCTION WRAPPERS
LAMBDA EXPRESSIONS
INVOKERS
SUMMARY
EXERCISES
NOTE
20 Mastering Standard Library Algorithms
OVERVIEW OF ALGORITHMS
ALGORITHM DETAILS
SUMMARY
EXERCISES
21 String Localization and Regular Expressions
LOCALIZATION
REGULAR EXPRESSIONS
SUMMARY
EXERCISES
22 Date and Time Utilities
COMPILE-TIME RATIONAL NUMBERS
DURATION
CLOCK
TIME POINT
DATE
TIME ZONE
SUMMARY
EXERCISES
23 Random Number Facilities
C-STYLE RANDOM NUMBER GENERATION
RANDOM NUMBER ENGINES
RANDOM NUMBER ENGINE ADAPTERS
PREDEFINED ENGINES AND ENGINE ADAPTERS
GENERATING RANDOM NUMBERS
RANDOM NUMBER DISTRIBUTIONS
SUMMARY
EXERCISES
24 Additional Vocabulary Types
VARIANT
ANY
TUPLE
OPTIONAL: MONADIC OPERATIONS
EXPECTED
SUMMARY
EXERCISES
PART IV: Mastering Advanced Features of C++
25 Customizing and Extending the Standard Library
ALLOCATORS
EXTENDING THE STANDARD LIBRARY
SUMMARY
EXERCISES
NOTE
26 Advanced Templates
MORE ABOUT TEMPLATE PARAMETERS
CLASS TEMPLATE PARTIAL SPECIALIZATION
EMULATING FUNCTION PARTIAL SPECIALIZATION WITH OVERLOADING
TEMPLATE RECURSION
VARIADIC TEMPLATES
METAPROGRAMMING
SUMMARY
EXERCISES
27 Multithreaded Programming with C++
INTRODUCTION
THREADS
ATOMIC OPERATIONS LIBRARY
MUTUAL EXCLUSION
CONDITION VARIABLES
LATCHES
BARRIERS
SEMAPHORES
FUTURES
EXAMPLE: MULTITHREADED LOGGER CLASS
THREAD POOLS
COROUTINES
THREADING DESIGN AND BEST PRACTICES
SUMMARY
EXERCISES
NOTES
PART V: C++ Software Engineering
28 Maximizing Software Engineering Methods
THE NEED FOR PROCESS
SOFTWARE LIFE CYCLE MODELS
SOFTWARE ENGINEERING METHODOLOGIES
BUILDING YOUR OWN PROCESS AND METHODOLOGY
VERSION CONTROL
SUMMARY
EXERCISES
29 Writing Efficient C++
OVERVIEW OF PERFORMANCE AND EFFICIENCY
LANGUAGE-LEVEL EFFICIENCY
DESIGN-LEVEL EFFICIENCY
PROFILING
SUMMARY
EXERCISES
NOTES
30 Becoming Adept at Testing
QUALITY CONTROL
UNIT TESTING
FUZZ TESTING
HIGHER-LEVEL TESTING
TIPS FOR SUCCESSFUL TESTING
SUMMARY
EXERCISES
NOTE
31 Conquering Debugging
THE FUNDAMENTAL LAW OF DEBUGGING
BUG TAXONOMIES
AVOID BUGS
PLAN FOR BUGS
DEBUGGING TECHNIQUES
SUMMARY
EXERCISES
32 Incorporating Design Techniques and Frameworks
“I CAN NEVER REMEMBER HOW TO…”
THERE MUST BE A BETTER WAY
OBJECT-ORIENTED FRAMEWORKS
SUMMARY
EXERCISES
33 Applying Design Patterns
THE STRATEGY PATTERN
THE ABSTRACT FACTORY PATTERN
THE FACTORY METHOD PATTERN
OTHER FACTORY PATTERNS
THE ADAPTER PATTERN
THE PROXY PATTERN
THE ITERATOR PATTERN
THE OBSERVER PATTERN
THE DECORATOR PATTERN
THE CHAIN OF RESPONSIBILITY PATTERN
THE SINGLETON PATTERN
SUMMARY
EXERCISES
34 Developing Cross-Platform and Cross-Language Applications
CROSS-PLATFORM DEVELOPMENT
CROSS-LANGUAGE DEVELOPMENT
SUMMARY
EXERCISES
NOTE
PART VI: Appendices
A: C++ Interviews
CHAPTER 1: A CRASH COURSE IN C++ AND THE STANDARD LIBRARY
CHAPTERS 2 AND 21: WORKING WITH STRINGS AND STRING VIEWS, AND STRING LOCALIZATION AND REGULAR EXPRESSIONS
CHAPTER 3: CODING WITH STYLE
CHAPTER 4: DESIGNING PROFESSIONAL C++ PROGRAMS
CHAPTER 5: DESIGNING WITH CLASSES
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: MODULES, HEADER FILES, AND MISCELLANEOUS TOPICS
CHAPTERS 12 AND 26: 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–20 AND 25: THE STANDARD LIBRARY
CHAPTER 22: DATE AND TIME UTILITIES
CHAPTER 23: RANDOM NUMBER FACILITIES
CHAPTER 24: ADDITIONAL VOCABULARY TYPES
CHAPTER 27: MULTITHREADED PROGRAMMING WITH C++
CHAPTER 28: MAXIMIZING SOFTWARE ENGINEERING METHODS
CHAPTER 29: WRITING EFFICIENT C++
CHAPTER 30: BECOMING ADEPT AT TESTING
CHAPTER 31: CONQUERING DEBUGGING
CHAPTER 32: INCORPORATING DESIGN TECHNIQUES AND FRAMEWORKS
CHAPTER 33: APPLYING DESIGN PATTERNS
CHAPTER 34: 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, RANGES, AND ALLOCATORS
GENERAL UTILITIES
MATHEMATICAL UTILITIES
EXCEPTIONS
I/O STREAMS
THREADING SUPPORT LIBRARY
D: Introduction to UML
DIAGRAM TYPES
CLASS DIAGRAMS
INTERACTION DIAGRAMS
INDEX
COPYRIGHT
DEDICATION
ABOUT THE AUTHOR
ABOUT THE TECHNICAL EDITORS
ACKNOWLEDGMENTS
People also search for Professional C++ 6th Edition:
professional c++ marc gregoire pdf
professional c++ 6th edition pdf github
professional c++ github
professional c++ 4th edition
professional c++ gregoire pdf
Tags: Marc Gregoire, Professional C++


