Ich habe gerade eine Frage zur Speicherung von C ++ Klassenmitgliedern erhalten.
Zum Beispiel habe ich eine Klasse wie diese:
class MyClass1{
int a;
int b[4];
int c;
}
In der Hauptfunktion:
int main(){
MyClass1 class1;
MyClass1* class_ptr1= new MyClass1();
}
Wie werden die Mitglieder a, b, c gespeichert? Für class1 denke ich, dass alle Mitglieder mit einem Platz im Stapel allokiert sind, auch das Array b.
Und was ist mit class_ptr1? Offensichtlich wird es dynamisch allokiert, werden die Mitglieder auch dynamisch allokiert, auch wenn sie keine Zeiger sind.
Vielen Dank.
Vielen Dank für die Antworten. Jetzt verstehe ich, dass sobald die Klasse dynamisch allokiert ist, auch alle ihre Mitglieder dynamisch allokiert werden. In diesem Fall muss ich etwas tun, um sie freizugeben, wenn ich die Klasse nicht mehr benutze? Soll ich einfach:
delete(class_ptr1);
oder muss ich zuerst ihre Mitglieder freigeben.