Im Wesentlichen, wenn ich mehrere Instanzen einer neuen Klasse erstellen, muss ich den Destruktor für jede Instanz aufrufen, oder wird es aufrufen, sobald jede Instanz zu zerstören (Ich entschuldige mich, wenn ich vage/falsche Begriffe verwende, Konstruktoren/Destruktoren sind Konzepte, die ich noch nicht vollständig verstehe).Muss ich jede Instanz der neuen Klasse zerstören?
Um genauer zu sein, das ist ein Code, mit dem ich arbeite (ich muss mich wieder entschuldigen, wenn der Stil schlecht ist, hatte ich eine Idee für ein Schulproblem und wollte den Code schnell runter).
Also um der Frage willen, nehme an, dass diese Schleife dreimal durchlaufen wird. Muss ich den Destruktor von "account" nur einmal aufrufen, um alle drei Instanzen des neuen Accounts zu löschen, oder wird ein Call die anderen beiden verlassen? Ist das überhaupt eine gute Übung?
Edit: Ich bemerkte, dass einige meiner Post abgeschnitten wurde, so fügte ich die letzten Zeilen hinzu, aber die Leute haben bereits dieses Problem angesprochen. Der Grund, warum ich ein Benutzer bin, ist rein, weil die Aufgabe es vorschreibt; Ehrlich gesagt verstehe ich nicht den Sinn, sie in diesem Moment zu benutzen, aber ich nehme an, dass sie irgendwann nützlich werden. Ich sollte auch hinzufügen, dass die dynamische Speicherzuweisung auch in der Zuweisung verwendet werden soll.
Verwenden intelligente Zeiger (dh 'shared_ptr' /' make_shared' oder 'unique_ptr' /' make_unique') und nicht die Mühe machen schließen Sie über das Löschen ' neue Instanzen. –
Wie immer: Jedes 'neue' braucht genau ein' delete' und jedes 'neue []' genau ein 'delete []'. Allerdings brauchen Sie grundsätzlich nie "neu" und "neu" noch seltener. –
Die eigentliche Frage ist, warum Sie Zeiger zu Beginn verwenden. Bist du aus Java gekommen, wo alle Objekte mit 'new' erstellt wurden? Ihr Array von "account" -Objekten könnte nur tatsächliche account-Objekte * speichern. –