Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 23:04

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Okt 24, 2003 10:15 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 09:39
Beiträge: 2
Ist es in Delphi eigentlich möglich, so ala C++ Operatoren zu überladen (z.Bsp. operator+) so das man halt (z.Bsp.) ganz einfach und auch wunderbar leserlich 2 eigene Klassen addieren kann {halt c:=a+b} oder geht das halt nur über funktionen {c:=plus(a,b)}

Genauso wüsste ich gerne ob man Sorten einführen kann, sprich zur Entwicklungszeit der Klasse steht der Dateityp noch nicht konkret fest, wenn ich aber eine Klasse einbinde muss ich dann den konkreten Typ angeben. Wollte dies für eine Listenklasse verwenden, die ich dann nicht unbedingt für jeden Objekttyp neu verändern wollte.

Hab dazu absolut nichts gefunden (oder vielleicht an der falschen Stelle gesucht ^^) Bin mir auch nicht so wirklich sicher, ob das unter Delphi7 überhaupt möglich ist ... aber vielleicht hat jmd ne kreative Idee ;-))))


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 24, 2003 10:23 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
1. frage: Nein, sowas gibts nicht. Ich halts aber auch nciht für sinnvoll, weils fehleranfällig ist und ich hab nichts gegen plus()

2. Frage: ja sowas gibts: Du machst eine Var, ich glaube TObject-Instanz, und benutzt sie per as und is Operator als dein Typ:

z.B. VAR as TStringList

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 24, 2003 10:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hab da auch noch was.
Die Operatren in C++ sind im übertragenen Sinne auch nur Methoden. ;)

Zu dem Anderen. Wenn du so etwas wie C++ Templates im Hinterkopf hast, dann kannst du so etwas NICHT mit Delphi machen. Weil dephi eine recht strenge Sprache ist.
Was du aber auf jeden Fall machen kannst ist eine Basislisten Klasse. (Die TList gibts ja schon) In der kannst du Pointer speichern. Klassenvariablen sind ja auch nur Pointer. Und diese kannst du mittels "as" oder hartem Casting (TIrgendwas(Pointer)) auf den entstrechenden Typ umwandeln. Wenn du Lust und Laune hast kannst du auch eine kleine Wrapperklasse für die TList schreiben, die dir dann genau den Typ zurückliefert den du haben willst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 24, 2003 11:23 
Offline
DGL Member

Registriert: Fr Okt 24, 2003 09:39
Beiträge: 2
Naja, wollte mir den Aufwand für die Wrapper Klassen gekonnt sparen, indem ich halt nur eine schreibe und dann den jeweiligen Datentyp angebe. Na gut, wenns nich anders geht *snief*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 24, 2003 15:06 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Den Array Operator [] kann man in jeder Klasse überladen, indem man eine Eigenschaft mit Index als default deklariert. Ein Beispiel ist dafür in TStringList:
Code:
  1. property Strings[Index: Integer]: string; default;


Die anderen Operatoren kann man überladen, wenn man eine neue Klasse von TCustomVariant ableitet und die entsprechende Methode überschreibt.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 15 Queries | GZIP : On ]