Array in einer Klasse

Cruz

Cruz

No Bullshit
Hallo!

Ich geb's ja zu. Ich bin ein totaler Noob was OO C++ angeht. Wenn ich nun eine Klasse habe, die ein Array enthält. Etwa so:

class Hurz
{
int hurze[100];

public:
Hurz();
virtual ~Hurz();
};


Muss ich das Array in dem Konstruktor explizit initialisieren? Oder wird das Array bei der Instanzierung automatisch auf den Speicher gelegt? Und wenn ich das Objekt irgendwann mal delete, muss ich im Desktruktor explizit dafür sorgen, dass das Array auch freigegeben wird? Etwa mit free oder gar mit delete[]? Oder geht das Array dann auch selbst zu Grunde, als würde es aus dem Scope gehen und samt Stackframe wieder vom OS gefressen? Manchmal muss man halt auch mal blöde Fragen stellen. :)

Gruß
Cruz
 
Muss ich das Array in dem Konstruktor explizit initialisieren?
Mit sinnvollen Werten initialisieren musst Du es, der Speicher ist alloziiert. Das Array verhält sich wie eine 100*4Byte grosse lokale Variable.
Oder wird das Array bei der Instanzierung automatisch auf den Speicher gelegt?
Ja, so könnte man das nennen. S. o.
Und wenn ich das Objekt irgendwann mal delete, muss ich im Desktruktor explizit dafür sorgen, dass das Array auch freigegeben wird?
Nein, macht der delete-Operator, indem er den Speicher für die Instanz freigibt.
Etwa mit free oder gar mit delete[]?
Bloss nicht...
Oder geht das Array dann auch selbst zu Grunde, als würde es aus dem Scope gehen und samt Stackframe wieder vom OS gefressen?
Genau so passiert es.
Manchmal muss man halt auch mal blöde Fragen stellen. :)
"Blöde Fragen sind nur die, die man nicht gestellt hat." (Keine Ahnung, wer das gesagt hat...)
 
Zuletzt bearbeitet:

Ähnliche Themen

Zwei Fragen zu QT

Zurück
Oben