in object oriented we don't think about procedures, we think about objects that interact together, we don't try to explore all paths that the logic may run through
note about over architecting of a program.
x=5; int& ref=x;
you can't say
int& ref=5;it's ok to say
const int& ref=5;but it's not useful to use it.
you can overload the function as the function signature is different, you can redefine the function
includes the passed variables, and their types
int fun (const int x)differs from
int fun(int x)so when you call a function it depends on your passed variable to call which function. but you can always cast.
only the last n arguments, not in the middle.. not that you already took to function signature, one takes int & chat, and one taking only int for example)
{
namespace y
{
int fun()
.
.
}
}