----
void f(int numX);
void f(string* pstr);
f(0);          // Violation : which function is calling: f(int) or f(string*) ?

void f(int numY);
void f(string& str);
f(0);          // f(int) is calling
----

To avoid execution or compilation errors

