Собственно, конструктор нужен для того, чтобы выделить память под объект. Скорее всего, это общее правило для всех ОО-языков (а иначе, зачем он нужен?). И этим он и отличается от других функций - именно он физически создаёт экземпляр класса. Как конструктор заменить любой другой функцией - непонятно, ибо обратиться к экземпляру класса можно только создав его с помощью конструктора. Ну, это если мы вообще говорим об ООП.