Эйфель "создать" над конструктором C ++? - PullRequest
4 голосов
/ 13 января 2012

В чем разница между конструктором C ++ и объявлением процедуры создания Eiffels?

Какое значение имеет возможность иметь несколько функций конструктора для класса? Или есть что-то еще для Eiffels "создать"?

Thankyou

1 Ответ

3 голосов
/ 13 января 2012

В C ++ вы можете перегружать конструкторы, поэтому вы также можете определять несколько конструкторов.

Преимущество использования процедур конструктора, как в EIFFEL, заключается в том, что вы можете определять разные конструкторы, имеющие одну и ту же сигнатуру (т.е. одинаковое число и тип аргументов).

Представьте себе класс Triangle: вы можете построить треугольник, указав длину трех сторон (три значения с плавающей запятой) или две стороны и угол окружения (также три значения с плавающей запятой).

В C ++ вам потребуется определить дополнительный параметр (например, значение enum для «режима построения»), в EIFFEL вы можете просто определить две процедуры построения с разными именами.

...