Эйфель «создать» над конструктором C ++?
Вопрос
В чем разница между конструктором C ++ и Эйфелями создает объявление процедуры?
Какое значение имеет возможность иметь несколько функций конструктора для класса? Или есть еще какое -либо преимущество для Эйфелей «создавать»?
Спасибо
Решение
В C ++ вы можете перегружать конструкторы, поэтому вы также можете определить несколько конструкторов.
Наличие процедур конструктора, как в Эйфелеве, имеет преимущество, которое вы можете определить различные конструкторы, имеющие одинаковую подпись (то есть одинаковое число и тип аргументов).
Только представьте себе Triangle
Класс: Возможно, вы захотите построить треугольник, предоставив длину трех сторон (три значения плавания) или давая две стороны и угол округа (также три значения плавания).
В C ++ вам придется определить дополнительный параметр (например, значение перечисления для «режима конструкции»), в Эйфелеве вы можете просто определить две процедуры строительства с разными именами.