Object-Oriented Programming in C++

Go beyond the basics and learn how professional programmers structure code. This course takes your C++ foundation and builds on it with the architecture patterns used in real game development — classes, inheritance, polymorphism, memory management, and version control.

What will you learn in the course?

C++ fundamentals revisited

Understand how Godot organizes games into reusable scenes and nodes.

Flow control and containers

Master if/switch statements, loops, vectors, and maps to write logic that handles real gameplay scenarios.

Pointers and references

Understand stack vs heap memory, encapsulation, getters, setters, and the arrow operator — one of C++’s most powerful features.

Classes, inheritance and polymorphism

Design programs using OOP architecture with class hierarchies, constructors, destructors, virtual functions, and interfaces.

Advanced C++ patterns

Go deeper with template functions, event systems, function pointers, casting, and composition-based game design.

Git and version control

Learn Git and GitHub to manage your code professionally, collaborate safely, and resolve merge conflicts like a real development team.

Course Content

Unit 1
0.00 Preparation Session 1 topic
1 1.01 Introduction
Unit 2
1.00 Preparation Session 2 topics
1 1.01 What's in a Personal Computer (PC)?
2 1.02 What is Software?
Unit 3
1.10 In-Class Material 5 topics
1 1.11 Introduction, Visual Studio, File Types, Entry Point, Scope & Debugger
2 1.12 Memory, Naming, Variables, Operators
3 1.13 #include, User-Defined Types, Scope Continued, Read/Write to Console, Operators Continued
4 1.14 Functions, Header Files & Source Files
5 1.15 How C++ Works, Compiler, Linker & Preprocessor Statements
Unit 4
1.20 Assignment 5 topics
1 1.21 Assignment - Introduction, Visual Studio, File Types, Entry Point, Scope and Debugger
2 1.22 Assignment - Memory, Naming, Variables, Operators
3 1.23 Assignment - #include, User-Defined Types, Scope Continued, Read/Write to Console, Operators Continued
4 1.24 Assignment - Functions, Header Files & Source Files
5 1.25 Assignment - How C++ Works, Compiler, Linker & Preprocessor Statements
Unit 5
2.00 Preparation Session 1 topic
1 2.01 Naming Conventions and Why They Matter
Unit 6
2.10 In-Class Material 3 topics
1 2.10 Flow Control Statements - If and Switch
2 2.11 Flow Control Statements - For, While and Do-While
3 2.12 Flow Control Statements - Containers and For-Each
Unit 7
2.20 Assignment 2 topics
1 2.21 Assignment - If and Switch
2 2.23 - Loops and Arrays
Unit 8
3.00 Preparation Session 2 topics
1 3.01 Parsing Input Types
2 3.02 Memory Allocation (i.e. Stack vs. Heap)
Unit 9
3.10 In-Class Material 3 topics
1 3.11 Pointers Part 1 - Intro To Pointers
2 3.12 Pointers Part 2 - Intro to Encapsulation, Stack & Heep Memory, dot operator, arrow operator,
3 3.13 Getters, Setters and References
Unit 10
3.20 Assignment 2 topics
1 3.21 Assignment
2 3.23 Assignment
Unit 11
4.00 Preparation Session 2 topics
1 4.01 D.R.Y. Code Principles
2 4.02 What is Object-Oriented Programming?
Unit 12
4.10 In-Class Material 7 topics
1 4.11 Classes, Structs and OOP Architecture
2 4.12 Default Constructor, Parameterized Constructor, Copy Constructor, Initialization List & Destructors
3 4.13 Polymorphism, Compile Time Polymorphism, Function Overloading, Operator Overloading, Const Functions
4 4.14 Inheritance Part 1 - Derived Classes and Base Classes, “Is A” Relationships, Member Access Specifiers, Inheritance Access Specifiers
5 4.15 Inheritance Part 2 - Base Class & Derived Class, “is a” Relationship with Constructors, Constructors in Inheritance, Member Access Specifiers, Inheritance Access Specifiers
6 4.16 Function Pointers
7 4.17 Run Time Polymorphism, Virtual Functions & Interfaces
Unit 13
4.20 Assignment 3 topics
1 4.21 Assignment
2 4.22 Assignment
3 4.25 Assignment
Unit 14
5.00 Preparation Session 1 topic
1 5.01 Composition vs. Inheritance: The Age-Old Debate
Unit 15
5.10 In-Class Material 6 topics
1 5.11 Containers Continued - Vectors, Maps, “auto” keyword
2 5.12 Event Systems and Function Pointers Continued
3 5.13 Casting
4 5.14 Template Functions
5 5.15 Smart Pointers
6 5.16 Composition, Has A Relationship and Components
Unit 16
5.20 Assignment 0 topics
Unit 17
6.00 Preparation Session 2 topics
1 6.01 What is Version Control?
2 6.03 How to Download Git and Github Desktop
Unit 18
6.10 In-Class Material 2 topics
1 6.11 Git
2 6.12 GitHub
Unit 19
6.20 Assignment 0 topics
Unit 20
7.00 Preparation Session 0 topics
Unit 21
7.10 In-Class Material 2 topics
1 7.11 Example Input System
2 7.12 Example Game Loop (Win State and Refreshing Console Window)
Unit 22
7.20 Assignment 0 topics
Unit 23
7.20 Final Project 0 topics
  • Meet the Creator

Reid Gillis

Reid is a game programmer specializing in C++ and C# with games shipped in both Unreal and Unity. He trained at VFS in programming for games, web and mobile, and writing for film, TV and games. Reid designs lessons with the hard parts in mind. This course is built to over-explain the topics that trip people up, so you spend less time confused and more time building.

Ready to build your first game?