Les parenthèses dans new Foo()
spécifier valeur d'initialisation; Cela signifie essentiellement que chaque membre est initialisé zéro. Si à la place tu as dit new Foo
, alors les membres seraient laissés non initialisés, comme ils le sont pour votre variable automatique.
Malheureusement, pour évaluer la variable automatique, vous ne pouvez pas écrire Foo bar()
, puisque cela déclare une fonction. Tu auras besoin
Foo bar{}; // C++11
Foo bar = Foo(); // Historical C++