Описание тега constructor-overloading
Constructors, used to create instances of an object, may also be overloaded in some object oriented programming languages.
Because in many languages the constructor’s name is predetermined by the name of the class, it would seem that there can be only one constructor.
Whenever multiple constructors are needed, they are implemented as overloaded functions.
A default constructor takes no parameters, instantiating the object members with a value zero.
Caveats
If a method is designed with an excessive number of overloads, it may be difficult for developers to discern which overload is being called simply by reading the code.
This is particularly true if some of the overloaded parameters are of types that are inherited types of other possible parameters (for example "object").
An IDE performs the overload resolution and displays (or navigates to) the correct overload.