Glossary: Virtual Function
When one
class,
say class B
inherits
from another class, say class A, effectively, every
object
of class B has an embedded object of class A. C++ allows
messages
to be passed to the A object even when it is embedded in B. For example, if
ptrB is a
pointer
to an object B, then the statement:-
A *ptrA = (A*) ptrB;
creates a pointer to the embedded A. If both classes A and B have a
member function
of the same name, they remain distinct unless they are declared as virtual.
In this case, when an embedded A receives the message, it passes it onto B for
processing. The B object can still access A's member function if needed, but
the user sending the message to A has no such choice. This mechanism allows
class B to modify the behaviour of the
base class
A, a phenomenon that can give rise to
polymorphism.
For example the ROOT class
TObject
has a virtual member function Paint, which classes that inherit from it can
modify.
See OO Concepts:Virtual Functions & Polymorphism
and
Interfaces & Abstract Classes
Go Back to the
The Glossary Top Page
If you have any comments about this page please send them to
Nick West