Я только что попал в новую компанию, и большая часть базы кода использует методы инициализации вместо конструкторов.
struct MyFancyClass : theUberClass
{
MyFancyClass();
~MyFancyClass();
resultType initMyFancyClass(fancyArgument arg1, classyArgument arg2,
redundantArgument arg3=TODO);
// several fancy methods...
};
Они сказали мне, что это имеет какое-то отношение к срокам. Что-то должно быть сделано после построения, которое потерпит неудачу в конструкторе. Но большинство конструкторов пустые, и я не вижу причин для отказа от использования конструкторов.
Итак, я обращаюсь к вам, о волшебники С++: зачем вы используете init-метод вместо конструктора?