Functions are the main building blocks of a program. The function with the same name and same signature results in function overriding. The function with the same name and different signature results in function overloading. Function overloading is the ability to process in more than one form through overloaded functions. Binding refers to the linking of a procedure call to the code to be executed in response to the call. Binding is of two types: Early Binding/Static Binding and Late Binding/Dynamic Binding. In early binding, the binding of identifiers is done at the compile time. In late binding, the binding is done at the run time (during program execution).
Function overloading reduces the number of comparisons in a program; thereby making the program run faster. With function overloading, the programmer is relieved from the burden of choosing the right function for a given set of values. The function’s argument list is known as the function’s signature. If two functions have the same number and type of arguments in the same order, then they are said to have the same signature. The signature can differ in number of arguments or in the type of arguments, or both. To overload a function name, the programmer should declare and define all the functions with the same name but with different signatures, separately.