This module explored the fundamentals of inheritance and pure polymorphism, including the use of derived classes and virtual functions to create a class hierarchy.
You learned:
Inheritance is a mechanism for enhancing existing, working classes. If a new class needs to be implemented and a class representing a more general concept is already available, then the new class can inherit from the existing class. For example, suppose we need to define a class Manager. We already have a class Employee, and a manager is a special case of an employee. In this case, it makes sense to use the language construct of inheritance. Here is the syntax for the class definition:
class Manager : public Employee{
public:
new member functions
private:
new data members
};
The : symbol denotes inheritance. The keyword public is required for a technical reason.
The existing, more general class is called the base class. The more specialized class that inherits from the base class is called the derived class.
In our example, Employee is the base class and Manager is the derived class.
In the Manager class definition you specify only new member functions and data members.
All member functions and data members of the Employee class are automatically inherited by the Manager class.
For example, the set_salary function automatically applies to managers: