When several functions declarations are specified for a single function name in the same scope, the function name is said to be overloaded. C++ distinguishes functions having the same name by their number and tyoe if arguments.
A function name having several definitions that are differentiable by the number or types of their arguments is known as function overloading.
Overloading improves the readibility of a program by reducing namespace pollution. It makes the language extensible. It is used in inheritence and abstraction.