function overloading?

Function overloading is defined as a normal function, but it has the ability to perform different tasks. It allows creation of several methods with the same name which differ from each other by type of input and output of the function.
Example
void add(int& k, int& s);
void add(double& k, double& s);
void add(struct bob& k, struct bob& s);