Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The Generalised Minimal RESidual technique—commonly known as GMRES—is an iterative technique for solving linear systems. See, for example, Trefethen and Bau [4] for more details.
- 2.
A unary operator has one input, hence -a is the unary minus operator applied to a.
- 3.
A binary operator has two inputs, hence a+b is the binary addition operator applied to a and b.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG, part of Springer Nature
About this chapter
Cite this chapter
Pitt-Francis, J., Whiteley, J. (2017). An Introduction to Classes. In: Guide to Scientific Computing in C++. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-73132-2_6
Download citation
DOI: https://doi.org/10.1007/978-3-319-73132-2_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-73131-5
Online ISBN: 978-3-319-73132-2
eBook Packages: Computer ScienceComputer Science (R0)