Go C++
C++ basics improvement, object-oriented paradigm and advanced programming techniques, along with classic interview questions and practical problem-solving examples.
Relevant code is on Github. Please give me a star if you benifit from it!
- People who have already learned C and want to learn C++
- People who already know C++ and want to learn in depth
- People who are preparing for recruitment and want to crack the technical interviews (like me)
- People who want to use C++ in practical projects and want to know about common programming techniques
- People who have no programming experience with C-style programming languages
- People who want to delve into the details of C++ standards
Have fun!
Contents
Chapter 1: What You Must Know First
- Virtual Address Space of Process: Memory Partition and Layout
- Function Call: Stack Frame
- Program Compiling and Linking
Chapter 2: C++ Basics Improvement
- Default Parameters
- Inline Function
- Function Overloading
new
anddelete
const
and Pointers- References in Detail
Chapter 3: Object-Oriented Principles
- Class and Object
- Constructor and Destructor
- Shallow Copy and Deep Copy
- Initializer List
- Various Member Functions
- Pointer to Class Members
Chapter 4: Template Programming
Chapter 5: Operator Overloading
- Operator Overloading
- Introduction to Iterators
- Issues of Iterator Invalidation
- More about
new
anddelete
- Overloading of
new
anddelete
: Object Pool
Chapter 6: Inheritance and Polymorphism
- Look inside Inheritance
- More about Inheritance
- Virtual Functions, Static Binding and Dynamic Binding
- More about Virtual Functions
- Understanding Polymorphism
- Abstract Classes
- Frequently Asked Interview Questions: Polymorphism
Chapter 7: Multiple Inheritance
Chapter 8: Standard Template Library
- Sequence Containers
- Container Adapters
- Associative Containers
- More about Iterators
- Function Objects
- Generic Algorithms, Binders and Lambda Expressions
Chapter 9: Object Optimization
- Behind the Object
- Optimizing Objects in Functions
- Member Functions with Rvalue References
- Move Semantics and Perfect Forwarding
Chapter 10: Smart Pointers
- Smart Pointers
- Smart Pointers without Reference Counting
- Smart Pointers with Reference Counting
- Custom Deleters
Chapter 11: Function Objects and Binders
- More about Binders
- Introduction to std::function
- Template Specialization and Argument Deduction
- More about std::function
- std::bind(): A Simple Thread Pool
- More about Lambda Expressions
Chapter 12: Multithreading
- Important Features in C++ 11
- Multithreaded Programming with std::thread
- Mutual Exclusion
- Producer-Consumer Problem
- Atomic Operations
- Thread Visibility and
volatile