More on Inheritance
A subclass can redefine member functions, hiding the original definition
// print generic employee info
class manager : employee {
// print special manager info instead
class summer_student : employee {
// NO print() function defined
e.print(); // employee’s print
m.print(); // manager’s print
s.print(); // employee’s print