Object Oriented Programming in C++

Rule of Three

Rule of Three

  • Copy Constructor
  • Regular Constructor
  • Overloaded Assignment Operator
  • Destructor
  • Shallow vs Deep Copy


Pointers in C++ Part 1

  • Introduction to Pointers in C/C++

  • Working with Pointers

  • Pointer Types, Pointer Arithmetic, Void Pointers

  • Pointers to Pointers in C/C++

Pointers in C++ Part 2

  • Pointers as Function Arguments - Call by Reference

  • Pointers and Arrays

  • Arrays as Functions Arguments

  • Character Arrays and Pointers

Pointers in C++ Part 3

  • Pointers and 2-D Arrays

  • Pointers and Multi-Dimensional Arrays

  • Pointers and Dynamic Memory - Stack vs Heap

  • Dynamic Memory Allocation in C++

  • Pointers as Function returns in C++

Pointers in C++ Part 4

  • Function Pointer in C/C++

  • Function Pointers and Callbacks

  • Memory Leaks in C/C++

Part One: Review OOP Topics and UML Modeling

• Review Debugging in C++

Review OOP Topics

  • Inheritance, Polymorphism, Encapsulation, and Abstraction


• UML- Basic Class Modeling

Virtual Function

• Virtual Functions in C++ (relates to Polymorphism) and Abstract Classes * Implementation of Virtual Functions

Step Programs

Step One Program

  • Farm Animal Example

Design Patterns

"insert phot"

Behavioral Patterns

Behavioral design patterns are concerned with algorithms and the assignment of responsibilities between objects.

Iterator Pattern

  • Iterator Pattern lets you traverse elements of a collection (list, stack, tree, linked list, etc.) without exposing its underlying representation.

  • Example using the NBA with an iterator on a Vector and an Array

Observer Pattern

  • Weather Tower Example

Strategy Pattern

  • Fighter Example!

Visitor Pattern

Template Pattern

  • Example using Different Kind of Pizzas

State Pattern

Creational Patterns

  • Provide the capability to create objects based on a required criterion and in a controlled way.

  • Abstract Factory
  • Builder

Factory Method Pattern

Singleton Pattern

Structural Patterns


  • Example using plugs (US outlets vs European outlets)

Bridge Pattern

  • Example using ….

Composite Pattern

  • Example using Librarian Example

Decorator Pattern

  • Using Taco Example

Proxy Pattern

  • Example using Stadium with a Proxy to show the different access a Season Ticket member has versus a regular guest!


Coming Soon:

Agile software development methods preferred such as Scrum, Continuous Integration, and Test-Driven Development.


Project One Coffee

Project Two Office

Project Three Adaptor Pattern

Factory Project

more projects on the way……