An Introduction to Classes
One of the key features of the C++ programming language is that it is object-oriented. Up until now we have largely ignored this feature, making only passing reference to it in earlier chapters. In this chapter we discuss in more detail three properties of object-orientation: modularity; abstraction; and encapsulation. This allows us to motivate the need for developing classes: entities where the data, and the operations on the data, are stored in one place. Access privileges to the members of a class are introduced: these prevent a user of a class from inadvertently corrupting the data or functionality of the class. We conclude the chapter by developing a class of complex numbers. This allows us to introduce operator overloading: a feature that permits us to define what we mean by addition, subtraction, multiplication and division of complex numbers, allowing much more natural looking C++ code to be written when performing these operations on complex numbers.