Не использовать круглые скобки в вызове конструктора с новым (С++)

Возможный дубликат:
Составляются ли скобки после имени типа с новым?

Итак, у меня было в основном:

Class* pC = new Class;

Он работал как

Class* pC = new Class();

Я понял, что сегодня я опустил круглые скобки (так что я был поражен "противоположностью" самого досадного синтаксического разбора).

Мой вопрос: эквивалентны эти две формы?

Ответы

Ответ 1

Если класс имеет конструктор по умолчанию, то оба эквивалентны; объект будет создан путем вызова этого конструктора.

Если класс имеет неявный конструктор по умолчанию, то есть разница. Первый из них оставит членов группы POD неинициализированными; второй будет инициализировать их значением (т.е. установить их на ноль).