The answer is not obvious.
by Jonathan Boccara
From the article:
“Should I use overloads or default parameters”, haven’t you asked yourself that question?
When designing an interface where the user can leave the value of an argument up to the API, two approaches are possible:
Using a default parameters:voiddrawPoint(int x, int y, Color color = Color::Black); void drawPoint(int x, int y, Color color = Color::Black);
And using overloading:void drawPoint(int x, int y); // draws a point in black void drawPoint(int x, int y, Color color);
Which approach is cleaner? Which expresses better the intentions of the interface? Or is it just a matter of style?
This may be subjective, but I’m under the impression that overloading tends to have better popularity than default parameters amongst C++ developers. But I believe that both features have their usages, and it’s usefulto see what makes one or the other more adapted to a given situation.