Classes allow you to combine data and functions into a single unit called an object. A class defines the type, while an object is a variable of that class type. Classes contain private, protected, and public members that control access levels. Private members can only be accessed within the class, protected within the class and subclasses, and public anywhere. An example class Circle contains private data member radius and public member functions setRadius() and getArea() to set and get the radius. Objects can then be declared like Circle c1, c2 and their member functions accessed such as c1.setRadius(2.5).