Course Highlights
  • Learn to program with one of the most powerful programming languages that exists today, C++.
  • Obtain the key concepts of programming that will also apply to other programming languages
  • Learn Modern C++ rather than an obsolete version of C++ that most other courses teach
  • Learn C++ features from basic to more advanced such as inheritance and polymorphic functions
  • Learn C++ using a proven curriculum that covers more material than most C++ university courses
  • Learn C++ from an experienced university full professor who has been using and teaching C++ for more than 25 years
  • Includes Quizzes, Live Coding Exercises, Challenge Coding Exercises and Assignments
  • New Section: Learn to use Visual Studio Code with C++
  • New Section: Learn all about using C++ Lambda Expressions
Curriculum

5 Topics
About the Course
Why Learn C++?
Modern C++ and the C++ Standard
How does all this work?
FAQ -- Please Read!

16 Topics
Installation and Setup Overview
Installing the C++ Compiler on Windows
Installing CodeLite on Windows
Configuring CodeLite on Windows
Installing the C++ Compiler on Mac OSX
Installing CodeLite on Mac OSX
Configuring CodeLite on Mac OSX
Using the Command-Line interface
Installing CodeLite on Ubuntu Linux
Configuring CodeLite on Ubuntu Linux
Creating a Default CodeLite Project Template (All Versions)
Using the Command-Line Interface on Windows
Using the Command-Line Interface on Mac OSX
Using the Command-Line Interface on Linux (Ubuntu)
Using a Web-based C++ Compiler
Using the Included Source Code Course Resources

3 Topics
Curriculum Overview
Overview of the Section Challenge Exercises
Overview of the Section Quizzes

12 Topics
Section Overview
An Overview of the CodeLite Interface
Writing our first program
Building our first program
What are Compiler Errors?
What are Compiler Warnings?
What are Linker Errors?
What are Runtime Errors?
What are Logic Errors?
Section Challenge
Section Challenge - Solution
Section 4 Quiz

11 Topics
Section Overview
Overview of the Structure of a C++ Program
#include Preprocessor Directive
Comments
The main() function
Namespaces
Basic Input and Output (I/O) using cin and cout
Using cout and the insertion operator to say Hi to Frank
Using cout and the insertion operator
Using cin and the extraction operator
Section 5 Quiz

12 Topics
Section Overview
What is a variable?
Declaring and Initializing Variables
Declaring and Initializing Variables
Global Variables
C++ Built-in Primitive Types
What is the Size of a Variable (sizeof)
What is a Constant?
Declaring and Using Constants
Section Challenge
Section Challenge - Solution
Section 06 Quiz

12 Topics
Section Overview
What is an Array?
Declaring and Initializing Arrays
Accessing and Modifying Array Elements
Declaring Initializing and Accessing an Array
Multidimensional Arrays
Declaring and Initializing Vectors
Accessing and Modifying Vector Elements
Declaring Initializing and Accessing Vectors
Section Challenge
Section Challenge - Solution
Section 07 Quiz

18 Topics
Section Overview
Expressions and Statements
Using Operators
The Assignment Operator
Arithmetic Operators
Using the Assignment Operator
Using the Arithmetic Operators
Increment and Decrement Operators
Mixed Expressions and Conversions
Testing for Equality
Relational Operators
Logical Operators
Compound Assignment Operators
Operator Precedence
Logical Operators and Operator Precedence - Can you work?
Section Challenge
Section Challenge - Solution
Section 08 Quiz

26 Topics
Section Overview
if Statement
If Statement - Can you Drive?
if else Statement
If-Else Statement - Can you Drive?
Nested if Statements
Nested If Statements - Can you Drive?
switch-case Statement
Switch Statement - Day of the Week
Conditional Operator
Looping
for Loop
For loop - Sum of Odd Integers
range-based for Loop
Using the range-based for loop
while Loop
While loop exercise
do while Loop
continue and break
Infinite Loops
Nested Loops
Nested Loops - Sum of the Product of all Pairs of Vector Elements
Section Challenge
Section Challenge - Solution Part 1
Section Challenge - Solution Part 2
​Section 09 Quiz

13 Topics
Section Overview
Character Functions
C-Style Strings
Working with C-style Strings
Using C-style Strings
C++ Strings
Working with C++ Strings
Using C++ Strings - Exercise 1
Using C++ Strings - Exercise 2
Section Challenge
Section Challenge - Solution
​Section 10 Quiz
Challenge Assignment - Letter Pyramid

24 Topics
Section Overview
What is a Function?
Using Functions from the cmath Library
Function Definition
Function Prototypes
Function Parameters and the return Statement
Functions and Prototypes - Converting Temperatures
Default Argument Values
Using Default Argument Values - Grocery List
Overloading Functions
Overloading Functions - Calculating Area
Passing Arrays to Functions
Passing Arrays to Functions - Print a Guest List
Pass by Reference
Using Pass by Reference - Print a Guest List
Scope Rules
How do Function Calls Work?
inline Functions
Recursive Functions
Implementing a Recursive Function - Sum of Digits
Implementing a Recursive Function - Save a Penny
Section Challenge
Section Challenge-Solution
Section 11 Quiz

24 Topics
Section Overview
What is a Pointer?
Declaring Pointers
Accessing the Pointer Address and Storing Address in a Pointer
Dereferencing a Pointer
Dynamic Memory Allocation
The Relationship Between Arrays and Pointers
Pointer Arithmetic
Swap Values using Pointers
Const and Pointers
Passing Pointers to Functions
Returning a Pointer from a Function
Passing a Pointer to a Function
Find the Maximum Element in an Array using Pointers
Reverse an Array using Pointers (Challenging!)
Reverse a std::string using Pointers (Challenging!)
Potential Pointer Pitfalls
What is a Reference?
L-values and R-values
Using the CodeLite IDE Debugger
Section Recap
Section Challenge
Section Challenge - Solution
​Section 12 Quiz

31 Topics
Section Overview
What is Object-Oriented Programming?
What are Classes and Objects?
Declaring a Class and Creating Objects
Accessing Class Members
Creating and Accessing Objects
public and private
Implementing Member Methods
Adding public methods that access private class attributes
Add more public methods to an existing class
Constructors and Destructors
The Default Constructor
Add a Default Constructor to an Existing Class
Overloading Constructors
Add an Overloaded Constructor to an Existing Class
Constructor Initialization lists
Delegating Constructors
Constructor Parameters and Default Values
Copy Constructor
Add a Copy Constructor to an Existing Class
Shallow Copying with the Copy Constructor
Deep Copying with the Copy Constructor
Move Constructors
The 'this' Pointer
Using const with Classes
Static Class Members
Structs vs Classes
Friends of a class
Section Challenge
Section Challenge - Solution
​Section 13 Quiz

14 Topics
Section Overview
What is Operator Overloading?
Overloading the Assignment Operator (copy)
Overloading the Assignment Operator (move)
Overloading Operators as Member Functions
Operator Overloading as Member Functions
Overloading Operators as Global Functions
Operator Overloading as Non-member Functions
Overloading the Stream Insertion and Extraction Operators
Operator Overloading the Stream Insertion Operator
Section Challenge
Section Challenge - Solution 1
Section Challenge - Solution 2
Section 14 Quiz

15 Topics
Section Overview
What is Inheritance?
Terminology and Notation
Inheritance vs. Composition
Deriving Classes from Existing Classes
Protected Members and Class Access
Constructors and Destructors
Passing Arguments to Base Class Constructors
Copy/Move Constructors and Operator = with Derived Classes
Redefining Base Class Methods
Multiple Inheritance
The Updated Accounts Example
Section Challenge
Section Challenge - Solution
​Section 15 Quiz

17 Topics
Section Overview
What is Polymorphism?
Using a Base Class Pointer
Virtual Functions
Virtual Destructors
Using the Override Specifier
Inheritance - Roar Lion Roar!
Inheritance - Bark Dog Bark!
Using the Final Specifier
Using Base Class References
Pure Virtual Functions and Abstract Classes
Abstract Classes as Interfaces
Section Challenge
Section Challenge - Solution Part 1
Section Challenge - Solution Part 2
Section Challenge - Final Solution
Section 16 Quiz

10 Topics
Section Overview
Some Issues with Raw Pointers
What is a Smart Pointer? Ownership and RAII
Unique Pointers
Shared Pointers
Weak Pointers
Custom Deleters
Section Challenge 1
Section Challenge 1 - Solution
Section 17 Quiz

11 Topics
Section Overview
Basic Concepts and a Simple Example: Dividing by Zero
Throwing an Exception from a Function
Handling Multiple Exceptions
Stack Unwinding and How it Works
Creating User-Defined Exception Classes
Class Level Exceptions
The C++ std::exception Class Hierarchy
Section Challenge
Section Challenge - Solution
Section 18 Quiz

24 Topics
Section Overview
Files Streams and I/O
Stream Manipulators
Stream Manipulators - boolean
Stream Manipulators - integers
Stream Manipulators - floating point
Stream Manipulators - align and fill
Section Challenge 1
Section Challenge 1 - Solution
Reading from a Text File
Reading from a Text File - Live Demo - Part 1
Reading from a Text File - Live Demo - Part 2
Reading a text file
Section Challenge 2
Section Challenge 2 - Solution
Section Challenge 3
Section Challenge 3 - Solution
Writing to a Text File
Writing to a Text File - Live Demo
Section Challenge 4
Section Challenge 4 - Solution
Using String Streams
File locations with some Popular IDEs
Section 19 Quiz

29 Topics
Section Overview
What is the STL?
Generic Programming with Macros
Generic Programming with Function Templates
Generic Programming with Class Templates
Creating a Generic Array Template Class
Introduction to STL Containers
Introduction to STL Iterators
Introduction to Iterators - Demo
Introduction to STL Algorithms
Introduction to Algorithms - Demo
Sequence Container - Array
Sequence Containers - Vector
Sequence Containers - Deque
Section Challenge 1
Section Challenge 1 - Solution
Sequence Containers - List and Forward List
Section Challenge 2
Section Challenge 2 - Solution
Associative Containers - Sets
Associative Containers - Maps
Section Challenge 3
Section Challenge 3 - Solution
Container Adaptors - Stack
Container Adaptors - Queue
Section Challenge 4
Section Challenge 4 - Solution
Container Adaptors - Priority Queue
Section 20 Quiz

11 Topics
Section Overview
Motivation
Structure of a Lambda Expression
Stateless Lambda Expressions
Stateless Lambda Expressions Demo - Part 1
Stateless Lambda Expressions Demo - Part 2
Stateful Lambda Expressions
Stateful Lambda Expressions Demo - Part1
Stateful Lambda Expressions Demo - Part2
Lambdas and the STL
Section 21 Quiz

13 Topics
Section Overview
Installing VSCode on Windows
Building and Running C++ Programs with VSCode on Windows
Debugging C++ Programs with VSCode on Windows
Using the Course Source Code with VSCode on Windows
Installing VSCode on Mac OSX
Building and Running C++ Programs with VSCode on Mac OSX
Debugging C++ Programs with VSCode on Mac
Using the Course Source Code with VSCode on Mac
Installing VSCode on Linux
Building and Running C++ Programs with VSCode on Linux
Debugging C++ Programs with VSCode on Linux
Using the Course Source Code with VSCode on Linux

5 Topics
Section Overview
Motivation
The Structure of an Enumeration
Unscoped Enumerations
Scoped Enumerations

11 Topics
Installation and Setup Overview
Installing the C++ Compiler on Windows
Installing CodeLite on Windows
Configuring CodeLite on Windows
Installing the C++ Compiler on Mac OSX
Installing CodeLite on Mac OSX
Configuring CodeLite on Mac OSX
Installing CodeLite on Ubuntu Linux
Configuring CodeLite on Ubuntu Linux
Creating a Default CodeLite Project Template (All Versions)
Using the Included Source Code Course Resources

1 Topic
Source Code for all Sections

1 Topic
Bonus - Course Slides and Free Programming EBook

  Write a Review

Beginning C++ Programming - From Beginner to Beyond

Go to Paid Course