Клаженки в new Foo()
указать инициализация значения; Это в основном означает, что каждый член нулевой инициализирован. Если вместо этого вы сказали new Foo
, Затем участники останутся неонициализированными, как и для вашей автоматической переменной.
К сожалению, чтобы инициализировать стоимость автоматической переменной, вы не можете написать Foo bar()
, поскольку это объявляет функцию. Вам понадобиться
Foo bar{}; // C++11
Foo bar = Foo(); // Historical C++