Что делает конструктор по умолчанию, когда он пуст? - PullRequest
4 голосов
/ 21 июля 2011

Интересно, кто-нибудь может объяснить, что делает ctor по умолчанию после выделения памяти, как он инициализирует выделенную память?

Ответы [ 3 ]

6 голосов
/ 21 июля 2011

Конструкторы по умолчанию вызывают конструкторы по умолчанию для всех нестатических элементов данных, кроме встроенных типов, которые остаются неинициализированными.

[2003: 12.1/5] * * 1004

Конструктор по умолчанию для класса X - это конструктор класса X, который можно вызвать без аргумента. Если нет заявленного пользователем конструктор для класса X, конструктор по умолчанию неявно объявлен.

[2003: 12.1/8]:

Конструкторы по умолчанию вызываются неявно для создания объектов класса статическая или автоматическая продолжительность хранения (3.7.1, 3.7.2), определенная без инициализатор (8.5).

5 голосов
/ 21 июля 2011

Я не знаю, на каком языке вы задали вопрос, но я все равно постараюсь ответить на вопрос о C ++ и Java

В C ++ это:

  • оставляет встроенные типы (int, float, указатели и т. Д.) Неинициализированным значением
  • вызывает конструктор по умолчанию для членов класса

В Java, я думаю, все члены класса инициализируются значением по умолчанию (0 или NULL).

1 голос
/ 21 июля 2011

Взгляните на this (в реализации C и C ++).

Да, реализация варьируется от языка к языку.

...