Forum: Object-Pascal / Delphi-Language
by JamesTKirk,
12. Mai 2011
Der Punkt ist, dass FPC das bereits unterstützt - als globale Operatoren und das auch schon länger als Delphi. Es wäre also nur die logische Fortführung eines bereits existierenden Features.
Aber genug dazu. Erstmal müssen die Generics richtig funktionieren, da hab ich noch genug zu tun :mrgreen:
Gruß,
Sven
Forum: Object-Pascal / Delphi-Language
by JamesTKirk,
9. Mai 2011
Man muss eben mehr aufpassen, wenn man es mit Klassen und überladenen Operatoren zu tun hat. Delphi/Pascal ist eben nicht .NET, wo einem der übriggebliebene Müll weggeräumt wird.
Sowas sollte man ja schließlich auch nicht machen (solange man nicht noch eine Referenz übrig hat):
var
a: TObject;
begin
a := TObject.Create;
(...)
Forum: Object-Pascal / Delphi-Language
by JamesTKirk,
8. Mai 2011
Wer sagt das dies notwendig ist? Ich kann in FPC zum Beispiel bereits mit globalen Operatoren mein Beispiel von oben umsetzen. Das liest sich dann so:
type
TIntClass = class
Value: Integer;
constructor Create(aValue: Integer);
end;
operator + (aLeft, aRight: TIntClass): TIntClass;
Forum: Object-Pascal / Delphi-Language
by JamesTKirk,
8. Mai 2011
Was bitte ist das für eine fadenscheinige Begründung? Und was hat die Verwendung von Operatoren mit Garbage-Collection zu tun? Das man in einer nativen Programmiersprache bezüglich dem Freigeben von Objekten mehr aufpassen muss als in .NET oder Java muss den Anwendern eben bewusst gemacht werden.
type
TIntClass = class
Value: Integer;
class operator Add(aLeft, aRight:...
Forum: Object-Pascal / Delphi-Language
by JamesTKirk,
6. Mai 2011
Vorteil class:
* Vererbung (inklusive virtuelle Methoden)
* implizite Pointer auf den Heap
Vorteil record:
* variante Teile
* konstante Initialisierung möglich
* können anonym deklariert werden
* liegen auf dem Stack
* schreiben in/lesen aus Datei (falls keine automatisierten Typen verwendet werden)