Chapter 13. Classes: Virtual Functions and Inheritance
You met classes in Chapter 10, and did a deep dive into special member functions in Chapter 11. You also learned how to use smart pointers in Chapter 12. In this chapter, you will use these building blocks to build a better trading game.
You can make a hierarchy of classes: a way to relate classes from abstract general concepts to more specific types.
You can then vary behavior in related classes.
Your Stock uses one method to get a price, but you have seen other approaches.
This chapter will show you how to provide related classes that use different strategies to price an asset.
Using different classes related by a hierarchy to vary behavior—a family of types—is called object-oriented programming (OOP).
If you work on an existing codebase with a hierarchy of classes, you can easily add a new related class to change behavior, for example, add a new feature to an app.
Without the related classes, you could have large functions with lots of ifs/elses to vary behavior.
Adding a new feature might involve adding even more ifs and elses, leaving you with massive functions that are hard to reason about.
OOP gives you a (relatively) simple way to add new features.
I will show you how to make a specific Stock from a general Asset class, so you can use it in a new trading game.
You will then make another class in “Adding Another Derived Type” and be able to vary how you play the game, without changing the game code itself.
You will ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access