* When Function overloading is done along with default values, then we need to make sure it will not be ambiguous. The compiler will throw an error, if ambiguous.
* With default arguments, we cannot skip an argument in the middle. Once an argument is skipped, all the following arguments must be skipped.
```
#include <iostream>
using namespace std;
int sum(int x, int y, int z = 0, int w = 0)
{
return (x + y + z + w);
}
int sum(int x, int y, float z = 0, float w = 0)
{
return (x + y + z + w);
}
int main()
{
cout << sum(10, 15) << endl; //ambiguous
return 0;
}
```