So, instead of a class object, you now have a pointer to a class. A function in C can only be declared once. Since the function has more than one declaration, it is called overloaded. Overloaded functions are used most commonly to declare class constructors. Inherited members are available for use by a class just as though they were defined in the class itself.
Inheritance occurs when one class is derived from another.
The derived class inherits the member functions and data from its parent, unless those members are marked as private. Thus, classes exist in an inheritance hierarchy . The root of a hierarchy is called the base class - in this example, the base class is goodClass. A subclass then adds definitions of whatever members it needs to implement in order to provide its specific functionality. A superclass can declare a member function as virtual , giving a subclass the opportunity to provide its own definition of that function.