learn kro favicon img

C++ Topics

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