Two kinds of polymorphism
C++ supports two distinctly different kinds of polymorphism.
One kind exists when functions or operators are overloaded to cause them to perform operations not inherently recognized by the compiler.
A well-known example is the ability to replace the three C functions shown in Figure 1 by three functions having the same name in C++.
Figure 1. Three C functions.
abs(), labs(), and fabs()