What Is virtual?
Lines 26 and 27 of Listing 22.4 show both functions qualified with the keyword virtual. This is important when functions are to be overridden, because it is the only way to make sure that class polymorphism works properly.
When a function outside an object calls a function in the object, the compiler generates code to perform the function call. If a function does not have the virtual keyword, the compiler assumes that the caller will want to call the function as implemented in the class the caller has at hand. Unfortunately, if the caller has a reference to a superclass of the class actually used to instantiate the object, and the derived class has overridden the function being called, the caller will not use the derived class's ...
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