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.