Подтвердить что ты не робот

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

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

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

Class* pC = new Class;

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

Class* pC = new Class();

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

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

4b9b3361

Ответ 1

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

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