Frage zur Objekterzeugung mit new
-
Hallo,
wo ist der Unterschied zwischen:
class A {}; .. A * a_p = new A;und:
A * a_p = new A();Thx.
-
Beim zweiten ist A nicht definiert und ergibt einen Compile Fehler?
-
okay. Frage war dumm gestellt.
Auch im zweiten Bsp. soll das definiert sein.
Ich habe nur beide Varianten der Objekterzeugung schon gesehen (also mit und ohne Klammern) und frage mich, wo der Unterschied ist.
-
Das macht keinen Unterschied. Wenn du aber einen Konstruktor mit Parametern hast, (und keinen default ctor), dann musst du mit den Klammern die Parameter übergeben.
-
drakon schrieb:
Das macht keinen Unterschied.
Doch. Falls
Aeine POD-Klasse ist, führtnew Azur Erzeugung eines uninitialisierten Objekts, während
new A()eine Null-Initialisierung durchführt.
-
Nexus schrieb:
drakon schrieb:
Das macht keinen Unterschied.
Doch. Falls
Aeine POD-Klasse ist, führtnew Azur Erzeugung eines uninitialisierten Objekts, während
new A()eine Null-Initialisierung durchführt.
Ach ja. Stimmt.