В C ++ вы можете перегружать конструкторы, поэтому вы также можете определять несколько конструкторов.
Преимущество использования процедур конструктора, как в EIFFEL, заключается в том, что вы можете определять разные конструкторы, имеющие одну и ту же сигнатуру (т.е. одинаковое число и тип аргументов).
Представьте себе класс Triangle
: вы можете построить треугольник, указав длину трех сторон (три значения с плавающей запятой) или две стороны и угол окружения (также три значения с плавающей запятой).
В C ++ вам потребуется определить дополнительный параметр (например, значение enum для «режима построения»), в EIFFEL вы можете просто определить две процедуры построения с разными именами.