In C ++, you can overload constructors, so you can also define multiple constructors.
Having constructor procedures, as in EIFFEL, has the advantage that you can define different constructors that have the same signature (the same number and type of arguments).
Imagine the Triangle class: you can build a triangle by specifying the lengths of three sides (three values ββof the float) or by giving two sides and a covering angle (also three values ββof the float).
In C ++ you will need to define an additional parameter (for example, the enum value for the "build mode"), in EIFFEL you can simply define two build procedures with different names.
source share