AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiede bei Type

Ein Thema von vsilverlord · begonnen am 2. Jul 2008 · letzter Beitrag vom 2. Jul 2008
Antwort Antwort
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Unterschiede bei Type

  Alt 2. Jul 2008, 16:51
Guten Tag,
Ich würde gerne wissen was der Unterschied zischen den Typen ist, also eigendefinierten Typen. Was ist z.b der Unterschied zwischen:
Delphi-Quellcode:
type
  TAuto = record
   Alter: Integer;
   Marke: (Audi,Opel,Mercedes,Ferrari,BMW,Porsche);
  end;
und dem
Delphi-Quellcode:
type
  TAuto = class
   Alter: Integer;
   Marke: (Audi,Opel,Mercedes,Ferrari,BMW,Porsche);
  end;

//edit: delphi win32
bzw. Was hat das für Auswirkungen auf das Programm, wenn ich einmal das eine, und einmal das andere nehme.
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 16:58


Das Eine ist ein Record und das Andere eine Klasse.

Verstehe die Frage wohl nicht...
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 16:59
Zitat von spaxxn:


Das Eine ist ein Record und das Andere eine Klasse.

Verstehe die Frage wohl nicht...
So ging's mir auch.
Daher hab ich nicht geantwortet.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 17:35
Hi vsilverlord,

ich versuche mal eine ganz einfache (und auch oberflächliche) Erklärung

Ein Record ist wie eine "Kiste", in der du deine Daten aufheben kannst.
Um mit diesen Daten dann zu Arbeiten, wird zusätzlicher Programmcode benötigt.

Eine Klasse dagegen ist ein "Record mit Leben", kann also einerseits Daten enthalten,
andererseits aber auch Programmcode, der mit diesen Daten "arbeitet".
Gruß
Norman
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#5

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 18:18
ohja danke. Ich dachte das gäbe es irgendwelche gravierenden Unterschiede, also habe ich das richtig verstanden, dass eine Klasse das gleiche kann wie ein record, bloß noch viel mehr?
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 18:39
es gibt aber auch Unterschiede ...
zB wird ein Record auf dem Stack angelegt, eine Klasse nach dem .Create auf dem Heap und ein Zeiger auf dem Stack. Bei einer Klasse musst du dich selbst um das Speicherreservieren + freigeben kümmern, bei einem Record macht das der Compiler für dich. Eine Klasse kann Methoden und Properties haben, ein Record nicht (ok, in neueren Delphiversionen schon...).

Sinn und Zweck: In einem Record kannst du Daten speichern, es werden einfach nur Variablen sinnvoll zusammengefasst. Eine Klasse ist intelligent, zB merkt sie wenn man "ihre Variablen" ändert und kann entsprechend reagieren (zB prüfen ob man verändern darf, ob der Wert im richtigen Bereich liegt, nach dem Ändern auf Festplatte speichern etc...) oder aber du kannst ihr Befehle geben wie zB bei einem Edit .Clear. Eine Klasse verwaltet sich einfach selber.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 18:43
Jein. Natürlich kann man statt eines Records eine Klasse verwenden. Man muss dann halt eine Instanz erzeugen.

Record:

Delphi-Quellcode:
Auto: TAuto;
...
Auto.Geschwindigkeit := 80;
...
Klasse:
Delphi-Quellcode:
Auto: TAuto;
...
Auto := TAuto.Create;
Auto.GebeGas;
...
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 19:54
Hallo,

und Auto.Free bei Klassen-Verwendung nach der Benutzung.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

Re: Unterschiede bei Type

  Alt 2. Jul 2008, 19:55
Und den ganzen Schmonses noch in einen try-finally-Block.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz