Functions that differ only in return type cannot have the
same name.
Two member functions that differ only in that one is
declared with the keyword static cannot have the same
name.
A typedef is a synonym for another type, not a separate
type. The following two declarations of spadina() are
declarations of the same function:
typedef int I;
void spadina(float, int);
void spadina(float, I);
A member function of a derived class is not in the same
scope as a member function in a base class with t he same
name. A derived class member hides a base class member
with the same name.
Argument types that differ only in that one is a pointer*
and the other is an array[] are identical. The following
two declarations are equivalent: