Chapter 29. Are Virtual Functions for Real?
In This Chapter
Overriding between functions that are members of a class
Introducing virtual member functions
Some special considerations for virtual functions
Declaring your destructor virtual — when to and when not to do it
Inheritance gives users the ability to describe one class in terms of another. Just as important, it highlights the relationship between classes. I describe a duck as "a bird that ...", and that description points out the relationship between duck and bird. From a C++ standpoint, however, a piece of the puzzle is still missing.
You have probably noticed this, but a microwave oven looks nothing like a conventional oven and nor does it work the same internally. Nevertheless, when I say "cook," I don't want to worry about the details of how each oven works internally. This chapter describes this problem in C++ terms and then goes on to describe the solution as well.
Overriding Member Functions
It has always been possible to overload a member function with another member function in the same class as long as the arguments differ:
class Student { public: double grade(); // return the student's gpa double grade(double); // set the student's gpa // ...other stuff... };
You see this in spades in Chapters 26 and 27 where I overload the constructor with a number of different types of constructors. It is also possible to overload a function in one class with a function in another class even if the arguments are the same, because the class ...
Get Beginning Programming with C++ For Dummies® now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.