This document provides an overview of object-oriented programming concepts using C++. It discusses C++ as an improvement over C that allows both object-oriented and procedural programming. The keys sections define objects, encapsulation, polymorphism, inheritance and classes. It also discusses defining classes in C++, objects and encapsulation, messages and polymorphism, data abstraction and natural building blocks of OOP. Later sections provide examples of polymorphism in applications and programs.