Thema: Delphi Class vs. Record

Einzelnen Beitrag anzeigen

Zwoetzen

Registriert seit: 19. Sep 2007
Ort: Ilmenau
93 Beiträge
 
Delphi 2009 Professional
 
#1

Class vs. Record

  Alt 6. Apr 2009, 09:37
Hi DP'ler,

heute geht es mal nicht um ein spezielles Problem, sondern es wird etwas allgemeiner. Die Frage ist eigentlich schnell gestellt:

Class vs. Record: Wo liegen die Unterschiede und wann sollte man was nehmen?

Gerade bei den erweiterten Records, die Properties und Methoden haben können, drängt sich bei mir immer mehr die Frage in den Vordergrund, wo es da eigentlich noch Unterschiede gibt: Rein von der Syntax sehen die beiden ja (fast) identisch aus

Ein was ist mir schon aufgefallen:
Instanzen von Klassen müssen am Anfang einer zB Funktion selbst angelegt werden, und am Ende auch selbst freigegeben werden. Dementsprechend gibt es Konstrulktoren und Destruktoren.
Record-Variablen legen sich gewissermaßen selbst am Anfang der Funktion an, und man brauch sie nicht freigeben. Entsprechend fehlen Create und Destroy (und entsprechend müsste man glaube mit New() und Dispose() arbeiten, wenn man zB eine Liste füllen will)

Dann muss man bei Klassen beachten, dass man in den Instanzvariablen nur Zeiger stehen hat: Eine Zuweisung kopiert den Zeiger, und nicht das ganze Objekt. Soweit ich weiß, ist es bei Records genau andersrum: Eine Zuweiung dupliziert das Record. (Wenn ich falsch liege, bitte korrigieren ^^)

Ich denke mal, das wird nicht die einzigen Unterschiede sein:
Was gibt es noch zu Beachten, wenn man Records oder Klassen verwendet? Gibt es irgendwelche Vorteile, irgendwelche Nachteile? Gibt es gewisse Situationen, in dem man besser ein Record als eine Klasse verwendet bzw umgekehrt? Oder ist es letztendlich immer Geschmackssache?

Fragen über Fragen, ich hoffe, als Antwort kommt nicht nur die 42

MfG Zwoetzen
  Mit Zitat antworten Zitat