This chapter discusses object-oriented programming (OOP) and abstract data types (ADTs) using C++ classes. It contrasts procedural with object-oriented programming, explaining how classes are used in C++ to define new types. The chapter then covers class constructors, overloaded operators, and pointers to class objects. It provides an example of a Time class that implements a time ADT as an illustration.