Practices - Default Arguments
When a default parameter is required, overload the function/method.
Rationale: default parameters may produce bugs that are difficult to catch.
class some_class { some_class( int value, int b = 10 ); };
even though it is not visible at first, some_class has a converting constructor, which may not be what the creator of the class ( consciously or not ) expected.
Additionally default values bleed dependencies and private details of a class to the header.