Las paréntesis en new Foo()
especificar Inicialización de valor; Esto básicamente significa que cada miembro está inicializado por cero. Si, en cambio, dijiste new Foo
, entonces los miembros se dejarían sin inicializar, como lo son para su variable automática.
Desafortunadamente, para iniciar el valor la variable automática, no puede escribir Foo bar()
, ya que eso declara una función. Necesitarás
Foo bar{}; // C++11
Foo bar = Foo(); // Historical C++