Hallo,
ich lerne gerade ein bisschen C++, jedoch verstehe ich die Speicherreservierung von Obijekten/Instanzen nicht so ganz.
Am besten zeige ich es an einem Beispiel:
// CKlasse ist eine Klasse und hat eine memberfunktion namens "anzahl()"
c++
___
Code:
int aktuelleanzahl = 0;
CKlasse *Klassenvariable = NULL;
Klassenvariable = new CKlasse // der Klassenvariable wird eine (referenz?) adresse zugewiesen.
aktuelleanzahl = Klassenvariable.anzahl(); // Wieso braucht man hier kein "*"? Ich dachte das man sonst nur auf die speicherdresse(?) zugreifen kann.
delete aktuelleanzahl;
// Beispiel aus einem anderen Tuturial
/*
int *zahl = Null;
zahl = new int;
*zahl = 100; //! hier braucht man den "*" wieder. warum hier schon aber bei "aktuelleanzahl = Klassenvariable.anzahl();" nicht?
delete zahl;
*/
Wie kann man dies am besten mit Delphi vergleichen?
Delphi:
Delphi-Quellcode:
var
anzahl: integer;
Klassenvariablenname: TKlasse;
begin
Klassenvariablenname := TKlasse.Create()
anzahl := Klassenvariablenname.anzahl;
anzahl.free;
end;
- Bitte beantwortet mir meine zwischenfragen die ich neben den quellcode als kommentar geschrieben habe.
- Bitte beantwortet mir diese Frage: Welche Zeilen von Delphi wären die gleichen wie in c++? z. B:
("Klassenvariablenname := TKlasse.Create()" in delphi ist das gleiche wie "CKlasse *Klassenvariable = NULL;")
- Bitte beantwortet mir diese Frage: Welche Zeilen von c++ wären die gleichen wie in delphi? z. B:
"CKlasse *Klassenvariable = NULL;" in delphi ist das gleiche wie ("Klassenvariablenname := TKlasse.Create()")
Bitte fragt nach wenn ihr nicht genau verstanden habt was ich eigentlich will (habe es ein bisschen kompliziert ausgedrückt)
Danke für eure mühen.
Lg Simon