На мой вопрос повлиял второй комментарий профессора Томаса Кормена на его ответ Quora $ .
Он говорит, что конструктор несетследующие три задачи:
Выделяет память для объекта.
Инициализирует переменные экземпляра объекта, например, с помощьюнеявно вызывая init в Python.(Я также подчеркиваю, что метод init должен инициализировать не некоторые, а все переменные экземпляра.)
Возвращает ссылку на (т. Е. Адрес)object.
Однако в документации MSDN для C ++ * говорится, что оператор new
делает это:
Выделяет память для объекта или массива объектов типа имя из бесплатного хранилища и возвращает ненулевой указатель на объект с подходящим типом.
Мой вопроскто прав?Или есть что-то еще, например, оператор new
всегда вызывает конструктор, как предполагает комментарий к сообщению?
Спасибо.
$ К сожалению,Quora не имеет возможности скопировать ссылку для комментария - я могу сделать это только для ответа.
* Хотя я говорю C ++, я думаю, что это также верно для других языков, таких как Java иC # (хотя я не уверен на 100%).