C++ has been one of the most popular programming languages for over 30 years. Developers use it for everything from building video games to coding operating systems.
We just published a comprehensive 31-hour C++ course on the freeCodeCamp.org YouTube channel.
Daniel Gakwaya developed this course. Daniel is an experienced software engineer and course creator.
This course will give you a comprehensive introduction to modern C++ with C++20. You will go from being a beginner to an advanced user.
Here are all the topics covered in this course:
Chapter 1: Start C++ Learning
- Your First C++ Program
- Comments
- Errors and Warnings
- Statements and Functions
- Data input and output
- C++ Program Execution Model
- C++ core language Vs Standard library Vs STL
Chapter 2: Variables and data types
- Variables and data types Introduction
- Number Systems
- Integer types : Decimals and Integers
- Integer Modifiers
- Fractional Numbers
- Booleans
- Characters And Text
- Auto
- Assignments
- Variables and data types summary
Chapter 3: Operations on Data
- Introduction on Data operations
- Basic Operations
- Precedence and Associativity
- Prefix/Postfix Increment & Decrement
- Compound Assignment Operators
- Relational Operators
- Logical Operators
- Output formatting
- Numeric Limits
- Math Functions
- Weird Integral Types
- Data Operations Summary
Chapter 4: Flow Control
- Flow Control Introduction
- If Statements
- Else If
- Switch
- Ternary Operators
- Flow Control Summary
Chapter 5: Loops
- Loops Introduction
- For Loop
- While Loop
- Do While Loop
Chapter 6: Arrays
- Introduction to Arrays
- Declaring and using arrays
- Size of an array
- Arrays of characters
- Array Bounds
Chapter 7: Pointers
- Introduction to Pointers
- Declaring and using pointers
- Pointer to char
- Program Memory Map Revisited
- Dynamic Memory Allocation
- Dangling Pointers
- When new Fails
- Null Pointer Safety
- Memory Leaks
- Dynamically allocated arrays
Chapter 8: References
- Introduction to References
- Declaring and using references
- Comparing pointers and references
- References and const
Chapter 9: Character Manipulation and Strings
- Introduction to Strings
- Character Manipulation
- C-string manipulation
- C-String concatenation and copy
- Introducing std::string
- Declaring and using std::string
Chapter 10: Functions
- The One Definition Rule
- First Hand on C++ Functions
- Function Declaration and Function Definitions
- Multiple Files – Compilation Model Revisited
- Pass by value
- Pass by pointer
- Pass by reference
Chapter 11: Getting Things out of functions
- Introduction to getting things out of functions
- Input and output parameters
- Returning from functions by value
Chapter 12: Function Overloading
- Function Overloading Introduction
- Overloading with different parameters
Chapter 13: Lambda functions
- Introduction to Lambda Functions
- Declaring and using lambda functions
- Capture lists
- Capture all in context
- Summary
Chapter 14: Function Templates
- Introduction to function templates
- Trying out function templates
- Template type deduction and explicit arguments
- Template parameters by reference
- Template specialization
Chapter 15: C++20 Concepts Crash course
- Introduction to C++20 Concepts
- Using C++20 Concepts
- Building your own C++20 Concepts
- Zooming in on the requires clause
- Combining C++20 Concepts
- C++20 Concepts and auto
Chapter 16: Classes
- Introduction to classes
- Your First Class
- C++ Constructors
- Defaulted constructors
- Setters and Getters
- Class Across Multiple Files
- Arrow pointer call notation
- Destructors
- Order of Constructor Destructor Calls
- The this Pointer
- struct
- Size of objects
Chapter 17: Inheritance
- Introduction to Inheritance
- First try on Inheritance
- Protected members
- Base class access specifiers : Zooming in
- Base class access specifiers – A demo
- Closing in on Private Inheritance
- Resurrecting Members Back in Context
- Default Constructors with Inheritance
- Custom Constructors With Inheritance
- Copy Constructors with Inheritance
- Inheriting Base Constructors
- Inheritance and Destructors
- Reused Symbols in Inheritance
Chapter 18: Polymorphism
- Introduction to Polymorphism
- Static Binding with Inheritance
- Dynamic binding with virtual functions
- Size of polymorphic objects and slicing
- Polymorphic objects stored in collections (array)
- Override
- Overloading, overriding and function hiding
- Inheritance and Polymorphism at different levels
- Inheritance and polymorphism with static members
- Final
- Virtual functions with default arguments
- Virtual Destructors
- Dynamic casts
- Polymorphic Functions and Destructors
- Pure virtual functions and abstract classes
- Abstract Classes as Interfaces