C ++ имеет два класса типов: POD и не POD («POD» означает «простые старые данные»… несколько вводящий в заблуждение намек).
Для не POD существует нет разница между new T
и new T()
.Разница влияет только на POD, для которых new T
не инициализирует память, тогда как new T()
будет инициализировать ее по умолчанию.
Так что же такое POD ?Все встроенные типы C ++ (int
, bool
…).
Кроме того, некоторые определенные пользователем типы также. Их точное определение несколько сложное , но для большинства целей достаточно сказать, что POD не может иметь пользовательский конструктор (а также некоторые другие функции), и все его члены-данные сами должны быть POD.Для получения дополнительной информации см. Связанную запись FAQ.
Поскольку ваш класс не является POD, обе операции идентичны.