C++ Fundamentals
Master C++ from basics to advanced concepts with 110 topics across 13 chapters
⚡ Complete C++ Learning Path
This comprehensive curriculum covers everything you need to become a C++ expert. Click on any chapter to explore topics, or use the sidebar to navigate directly to specific concepts.
Introduction to C++
6 topicsWhat is C++?
Understanding C++ as a programming language
Setting Up C++ Environment
Installing compilers and IDEs for C++ development
Your First C++ Program
Writing and running your first C++ application
Compilation Process
Understanding preprocessing, compilation, and linking
C++ vs C
Key differences between C and C++
C++ Standards (C++11 to C++23)
Evolution of C++ language standards
Basic Syntax
8 topicsVariables and Data Types
Fundamental data types and variable declarations
Operators
Arithmetic, logical, and bitwise operators
Input and Output
Using cin, cout, and stream manipulators
Type Casting
Implicit and explicit type conversions
Constants and Literals
const, constexpr, and literal types
References
Reference variables and their usage
Auto Keyword
Type inference with auto
Namespaces
Organizing code with namespaces
Control Flow
6 topicsFunctions
10 topicsFunction Basics
Defining and calling functions
Function Parameters
Pass by value, reference, and pointer
Return Types
Function return values and void functions
Function Overloading
Multiple functions with same name
Default Arguments
Parameters with default values
Inline Functions
Performance optimization with inline
Recursion
Functions calling themselves
Lambda Expressions
Anonymous functions in C++11+
Function Pointers
Pointers to functions
std::function
Type-erased function wrapper
Arrays and Strings
7 topicsPointers and Memory Management
10 topicsPointer Basics
Understanding pointers and addresses
Pointer Arithmetic
Navigating memory with pointers
Pointers and Arrays
Relationship between pointers and arrays
Dynamic Memory Allocation
new and delete operators
Memory Leaks
Detecting and preventing memory leaks
Smart Pointers
unique_ptr, shared_ptr, weak_ptr
RAII Pattern
Resource Acquisition Is Initialization
Move Semantics
Rvalue references and std::move
Perfect Forwarding
std::forward and universal references
C++ Memory Model
Stack vs heap, memory layout
Object-Oriented Programming
12 topicsClasses and Objects
Defining classes and creating objects
Access Specifiers
public, private, and protected
Constructors
Default, parameterized, and copy constructors
Destructors
Cleanup and resource deallocation
this Pointer
Self-reference in member functions
Static Members
Class-level variables and methods
Friend Functions and Classes
Breaking encapsulation when needed
Operator Overloading
Custom operators for classes
Inheritance
Code reuse through inheritance
Polymorphism
Virtual functions and runtime polymorphism
Abstract Classes
Pure virtual functions and interfaces
Multiple Inheritance
Inheriting from multiple classes
Standard Template Library (STL)
14 topicsSTL Overview
Introduction to containers, iterators, algorithms
std::vector
Dynamic array container
std::list
Doubly linked list
std::deque
Double-ended queue
std::stack and std::queue
Container adapters
std::priority_queue
Heap-based priority queue
std::set and std::multiset
Ordered unique/duplicate elements
std::map and std::multimap
Ordered key-value pairs
Unordered Containers
Hash-based set and map
Iterators
Iterator types and usage
STL Algorithms
sort, find, transform, etc.
std::pair and std::tuple
Grouping multiple values
std::optional and std::variant
C++17 value wrappers
Ranges (C++20)
Modern range-based algorithms
Templates
8 topicsFunction Templates
Generic functions
Class Templates
Generic classes
Template Specialization
Partial and full specialization
Variadic Templates
Templates with variable arguments
SFINAE
Substitution Failure Is Not An Error
Concepts (C++20)
Constraining templates
Type Traits
Compile-time type information
constexpr and Compile-Time Computation
Compile-time evaluation
Exception Handling
6 topicsFile I/O
5 topicsConcurrency
10 topicsstd::thread
Creating and managing threads
Mutexes
std::mutex and lock guards
Condition Variables
Thread coordination
Atomic Operations
std::atomic for lock-free programming
Futures and Promises
Asynchronous results
std::async
Easy asynchronous execution
Thread Pools
Managing thread resources
Deadlock Prevention
Avoiding and detecting deadlocks
Memory Ordering
Memory order semantics
Coroutines (C++20)
Cooperative multitasking
Modern C++ Features
8 topicsC++11 Features
auto, range-for, nullptr, lambdas
C++14 Features
Generic lambdas, variable templates
C++17 Features
Structured bindings, if constexpr
C++20 Features
Concepts, ranges, modules
C++23 Features
Latest additions to C++
C++ Best Practices
Guidelines for modern C++ code
C++ Core Guidelines
Official guidelines from experts
Common Pitfalls
Avoiding common C++ mistakes
💡 Interview Focus
Topics marked with 💼 in the sidebar are frequently asked in technical interviews. Make sure to pay special attention to these concepts for your interview preparation.