Skip to product information
C++ for Professionals
C++ for Professionals
Description
Book Introduction
Easier, faster, cleaner!
Everything Programmers Need to Know About C++ and C++20


Although C++ is notoriously difficult to master, its rich feature set has made it a popular language for developing games and commercial software applications.
Even experienced C++ programmers are unaware of many advanced features, and now that the latest C++20 release is out, there's a great opportunity to explore all the features of C++.
『C++ for Professionals (Revised 5th Edition)』 introduces all aspects of C++, including new features and related tools added in C++20, through code and solutions.
It is suitable for programmers who want to gain a deeper understanding of C++, as it introduces a variety of practical techniques that can be applied to real-world programming.
  • You can preview some of the book's contents.
    Preview

index
[PART I: C++ Beginners for Professionals]

CHAPTER 1: C++ and the Standard Library: A Quick, Introductory Course
_1.1 Basics of C++
_1.2 My first C++ program of some size
_1.3 Summary
_1.4 Practice Problems

CHAPTER 2 Working with Strings and String Views
_2.1 Dynamic Strings
_2.2 String Formatting
_2.3 Summary
_2.4 Practice Problems

CHAPTER 3 Coding Style
_3.1 The Importance of Coding Style
_3.2 Code Documentation
_3.3 Code Decomposition
_3.4 Naming Conventions
_3.5 Applying Style to Language Features
_3.6 Code Format
_3.7 Issues to be resolved regarding style
_3.8 Summary
_3.9 Practice Problems

[PART II: How to Design Professional C++ Software]

CHAPTER 4: Designing C++ Programs Like a Professional
_4.1 Definition of program design
_4.2 The Importance of Program Design
_4.3 Design methods suitable for C++
_4.4 Two principles related to C++ design
_4.5 Code Reuse
_4.6 Designing a Chess Program
_4.7 Summary
_4.8 Practice Problems

CHAPTER 5 OBJECT-ORIENTED DESIGN
_5.1 Procedural Thinking
_5.2 Object-oriented philosophy
_5.3 Living in a Class World
_5.4 Class Relationships
_5.5 Summary
_5.6 Practice Problems

CHAPTER 6 DESIGN FOR REUSE
_6.1 Reuse Philosophy
_6.2 How to design code for reuse
_6.3 Summary
_6.4 Practice Problems

[PART III: Coding C++ Like a Pro]

CHAPTER 7 Memory Management
_7.1 Handling Dynamic Memory
_7.2 The Two Faces of Arrays and Pointers
_7.3 Low-level memory operations
_7.4 Common Memory Related Issues
_7.5 Smart Pointers
_7.6 Summary
_7.7 Practice Problems

CHAPTER 8 Understanding Classes and Objects
_8.1 Spreadsheet Example
_8.2 How to write a class
_8.3 Object Life Cycle
_8.4 Summary
_8.5 Practice Problems

CHAPTER 9: Mastering Classes and Objects
_9.1 Friend
_9.2 Allocating dynamic memory to objects
_9.3 Types of methods
_9.4 Types of data members
_9.5 Nested Classes
_9.6 Defining enumerated types in a class
_9.7 Operator Overloading
_9.8 Creating a Stable Interface
_9.9 Summary
_9.10 Practice Problems

CHAPTER 10: Leveraging Inheritance
_10.1 Implementing a class using inheritance
_10.2 Inheritance for code reuse
_10.3 Honor your parents
_10.4 Inheritance for Polymorphism
_10.5 Multiple Inheritance
_10.6 Subtle and Interesting Issues Related to Inheritance
_10.7 Cast
_10.8 Summary
_10.9 Practice Problems

CHAPTER 11 The Tricky and Unusual Parts of C++
_11.1 Module
_11.2 Header file
_11.3 Test macros for core language features
_11.4 static keyword
_11.5 C Utilities
_11.6 Summary
_11.7 Practice Problems

CHAPTER 12 Creating Generic Code with Templates
_12.1 Introducing Templates
_12.2 Class Template
_12.3 Function Templates
_12.4 Variable Templates
_12.5 Concept
_12.6 Summary
_12.7 Practice Problems

CHAPTER 13 C++ I/O In-Depth Analysis
_13.1 How to use streams
_13.2 String Stream
_13.3 File Stream
_13.4 Bidirectional I/O
_13.5 Filesystem Support Library
_13.6 Summary
_13.7 Practice Problems

CHAPTER 14 Error Handling
_14.1 Errors and Exceptions
_14.2 How to handle exceptions
_14.3 Exceptions and Polymorphism
_14.4 Rethrowing Exceptions
_14.5 Stack Unpacking and Cleanup
_14.6 Common Problems in Exception Handling
_14.7 Summary
_14.8 Practice Problems

CHAPTER 15 C++ Operator Overloading
_15.1 Operator Overloading Overview
_15.2 Arithmetic Operator Overloading
_15.3 Bitwise and Logical Operator Overloading
_15.4 Overloading stream input and output operators
_15.5 Overloading the index operator
_15.6 Overloading the function call operator
_15.7 Overloading the Dereference Operator
_15.8 Implementing Conversion Operators
_15.9 Overloading memory allocation and deallocation operators
_15.10 Overloading User-Defined Literal Operators
_15.11 Summary
_15.12 Practice Problems

CHAPTER 16 A Tour of the C++ Standard Library
_16.1 Code Writing Principles
_16.2 A Tour of the C++ Standard Library
_16.3 Summary
_16.4 Practice Problems

CHAPTER 17 Iterator and Range Libraries
_17.1 Iterators
_17.2 Stream Iterators
_17.3 Iterator Adapter
_17.4 Scope
_17.5 Summary
_17.6 Practice Problems

CHAPTER 18 Standard Library Containers
_18.1 Container Overview
_18.2 Sequential Containers
_18.3 Container Adapter
_18.4 Sortable associative containers
_18.5 Unordered Associative Containers - Hash Tables
_18.6 Other containers
_18.7 Summary
_18.8 Practice Problems

CHAPTER 19 Function Pointers, Function Objects, and Lambda Expressions
_19.1 Function Pointers
_19.2 Pointers to methods and data members
_19.3 std::function
_19.4 Function Objects
_19.5 Lambda Expressions
_19.6 std::invoke( )
_19.7 Summary
_19.8 Practice Problems

CHAPTER 20: Mastering Standard Library Algorithms
_20.1 Algorithm Overview
_20.2 In-Depth Analysis of Standard Library Algorithms
_20.3 Summary
_20.4 Practice Problems

CHAPTER 21 String Localization and Regular Expressions
_21.1 Localization
_21.2 Regular Expressions
_21.3 Summary
_21.4 Practice Problems

CHAPTER 22 Date and Time Utilities
_22.1 Compile-time rational numbers
_22.2 duration
_22.3 clock
_22.4 time_point
_22.5 Date
_22.6 Time zone
_22.7 Summary
_22.8 Practice Problems

CHAPTER 23 Random Number Functions
_23.1 C-style random number generation
_23.2 Random Number Engine
_23.3 Random Number Engine Adapter
_23.4 Default Engine and Engine Adapter
_23.5 Generating random numbers
_23.6 Random Number Distribution
_23.7 Summary
_23.8 Practice Problems

CHAPTER 24 Other Library Utilities
_24.1 Vocabulary Types
_24.2 tuple
_24.3 Summary
_24.4 Practice Problems

[PART IV Mastering Advanced C++ Features]

CHAPTER 25: Customizing and Extending the Standard Library
_25.1 Allocator
_25.2 Extending the Standard Library
_25.3 Summary
_25.4 Practice Problems

CHAPTER 26 ADVANCED TEMPLATES
_26.1 Deep Dive into Template Parameters
_26.2 Partial specialization of class templates
_26.3 Mimicking partial specialization of function templates with overloading
_26.4 Template Recursion
_26.5 Variable argument template
_26.6 Metaprogramming
_26.7 Summary
_26.8 Practice Problems

CHAPTER 27 C++ Multithreaded Programming
_27.1 Introduction
_27.2 thread
_27.3 Atomic Operation Library
_27.4 Mutex
_27.5 State variables
_27.6 Latch
_27.7 Barrier
_27.8 Semaphore
_27.9 Future
_27.10 Multithreaded Logger Class Example
_27.11 Thread Pool
_27.12 Coroutines
_27.13 Guidelines for Desirable Thread Design and Implementation
_27.14 Summary
_27.15 Practice Problems

[PART V C++ Software Engineering]

CHAPTER 28 SOFTWARE ENGINEERING TECHNIQUES
_28.1 The Need for Process
_28.2 Software Life Cycle Model
_28.3 Software Engineering Methodology
_28.4 Creating Your Own Process and Methodology
_28.5 Source Code Management
_28.6 Summary
_28.7 Practice Problems

CHAPTER 29: Writing Efficient C++ Code
_29.1 About Performance and Efficiency
_29.2 Language-level efficiency
_29.3 Design level efficiency
_29.4 Profiling
_29.5 Summary
_29.6 Practice Problems

CHAPTER 30 Mastering Testing
_30.1 Quality Control
_30.2 Unit Tests
_30.3 Purging
_30.4 High-level test
_30.5 Tips for Successful Testing
_30.6 Summary
_30.7 Practice Problems

CHAPTER 31: Mastering Debugging
_31.1 Debugging Basics
_31.2 Bug Classification
_31.3 Bug Prevention
_31.4 Bug Fixes
_31.5 Debugging Techniques
_31.6 Summary
_31.7 Practice Problems

CHAPTER 32 DESIGN TECHNIQUES AND FRAMEWORKS
_32.1 Commonly used but easily forgotten grammar
_32.2 Advanced Techniques
_32.3 Object-oriented framework
_32.4 Summary
_32.5 Practice Problems

CHAPTER 33 DESIGN PATTERNS
_33.1 Dependency Injection
_33.2 Abstract Factory Pattern
_33.3 Factory Method Pattern
_33.4 Adapter Pattern
_33.5 Proxy Pattern
_33.6 Iterator Pattern
_33.7 Observer Pattern
_33.8 Decorator Pattern
_33.9 Chain of Responsibility Pattern
_33.10 Singleton Pattern
_33.11 Summary
_33.12 Practice Problems

CHAPTER 34 Cross-Platform and Cross-Language Application Development Methods
_34.1 Cross-platform development
_34.2 Cross-Language Development
_34.3 Summary
_34.4 Practice Problems

[PART VI APPENDIX]

APPENDIX A C++ Interview Questions
APPENDIX B REFERENCES
APPENDIX C Standard Library Header Files
APPENDIX D UML Basics

Detailed image
Detailed Image 1

Publisher's Review
Good news for programmers who dream of becoming C++ experts!
Everything You Need to Know About C++ and C++20 to Master Modern C++

This book contains step-by-step instructions on what you need to know to become a C++ expert.
We introduce C++ programming techniques that simultaneously improve code quality and programming efficiency.
In particular, new features added starting from C++20 are introduced throughout this book.
Instead of explaining these features all at once in separate chapters or sections, we've introduced them one by one as they relate to each chapter, and the examples in each chapter have been updated to take advantage of the new features.

This book goes beyond simply introducing the grammar and functions of language.
We also cover programming methodologies, reusable design patterns, and desirable programming styles.
In particular, it explains the overall software development process, from the stages of designing and writing code to the stages of debugging and collaboration.
In the process, you can master the features and unique aspects of the C++ language itself and learn powerful techniques for large-scale software development.


If you read this book properly, you can broaden your knowledge of C++ by properly understanding features that are not well known or are easily misunderstood.
You can also understand object-oriented design methods and learn the latest debugging techniques.
Furthermore, you can acquire a wealth of reusability techniques that can be immediately applied to your daily development work.
Don't miss this great opportunity to become a better C++ programmer based on C++20.

Target audience

- Developer with several years of experience using C++
- Developers who are unfamiliar with or have never used advanced features of C++
- Intermediate developers who want to improve their C++ skills to expert level
- People who are curious about how to design in C++ or desirable programming styles.
- People who lack experience with C++ but want to learn it correctly from the beginning

Key Contents

- Presents a C++ mindset to help you develop effective solutions by making the most of C++'s extensive features.
- We introduce various tips, techniques, and workaround strategies to correct areas that are easily overlooked or mistakes made, and to improve efficiency and performance.
- Introduces realistic problems and program examples that can be encountered and applied in projects right away.
- Introduces new features added in C++20, including modules, concepts, three-way comparisons, and immediately invoking functions.
- We take an in-depth look at the major new features of the standard library starting with C++20, including text formatting, ranges, atomic smart pointers, synchronization elements, dates, and time zones.
GOODS SPECIFICS
- Date of issue: March 30, 2023
- Page count, weight, size: 1,692 pages | 183*235*80mm
- ISBN13: 9791169210898
- ISBN10: 1169210899

You may also like

카테고리