AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Operatoren in Turbo Delphi (Win32) überladen?
Thema durchsuchen
Ansicht
Themen-Optionen

Operatoren in Turbo Delphi (Win32) überladen?

Ein Thema von 7eddi · begonnen am 8. Sep 2006 · letzter Beitrag vom 9. Sep 2006
Antwort Antwort
Seite 1 von 3  1 23      
7eddi

Registriert seit: 3. Jun 2006
4 Beiträge
 
#1

Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:16
Hi,

kann ich in Turbo Delphi für Win32 Operatoren überladen? In der Hilfe steht "Ja", der Compiler meckert trotzdem.

Danke und Gruß,
Lucas
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:20
Das geht - jedoch wie auch im BDS2006 nur bei Records (!). Bei welchem Code meckert denn der Compiler?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:20
Ja, das geht. Nur ohne Code kann ich dir mangels Kristallkugel nicht helfen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:21
Na und was sollen wir dir jetzt dazu sagen können? Mit dem was du uns an Infos gabst: Ja, es geht.
Aber das hilft dir nicht wirklich weiter, rightig?

Probieren wir es also am Besten gleich nochmal von vorne und du zeigst uns wie du es versucht hast und was der Compiler dazu gesagt hat.

Zitat von Daniel:
Das geht - jedoch wie auch im BDS2006 nur bei Records (!). Bei welchem Code meckert denn der Compiler?
Das musste ich auch gerade mit Erschrecken feststellen!
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
7eddi

Registriert seit: 3. Jun 2006
4 Beiträge
 
#5

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:39
Nur bei Records? Sorry, aber ich bin gar nicht auf die Idee gekommen, dass jemand bei Records Operatoren überladen wollen würde und daher dachte ich, dass meine (allgemein technische) Frage auch ohne Code, der als einfaches Beispiel eher trivial ist, eindeutig wäre. Nun gut, in der Hilfe steht zunächst nur etwas von Records, in dem unteren Beispiel werden aber auch Klassen genannt .
Ich habe natürlich versucht, die Operatoren einer Klasse zu überladen - daher funktionierte es wohl nicht.

Wieso klappt das denn nur bei Records? Gibt es Hoffnung, dass sich das mit der nächsten Version endlich ändert?
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:42
Zitat von 7eddi:
Nun gut, in der Hilfe steht zunächst nur etwas von Records, in dem unteren Beispiel werden aber auch Klassen genannt .
Hm, das Beispiel mit den Klassen bezieht sich aber auf Delphi .Net - da ist wohl die gliche Hilfe wie beim BDS dabei ?
Andererseits musste ich fesstellen dass records ggü. Klassen praktisch keinen Nachteil haben - die können ja auch private & public Teile haben, das einzige was nicht geht ist eben Vererbung (und destructoren, aber auf die kann man ja sch***** )

  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:45
Wie würde man das denn überhaupt bei Klassen idealerweise anstellen?

Gehen wir davon aus, ich habe drei Variablen vom Typ TMeineTolleKlasse und habe für diese Klasse die Addition definiert.

Delphi-Quellcode:
procedure foo;
var a, b, c : TMeineTolleKlasse;
begin
  a:= TMeineTolleKlasse.Create;
  b:= TMeineTolleKlasse.Create;

  c:= a + b;

  a.Free;
  b.Free;
  c.Free;
end;
Der überladene Operator würde also eine neue Instanz erzeugen und sie zurückliefern. In meinem Beispiel wäre sie dann an C gebunden. Was mache ich - ohne Garbage-Collector, wenn C vorher schon eine Instanz der Klasse an sich gebunden hatte? Habe ich dann nicht ein Speicher-Löchlein?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:53
Bei Datentypen würde sich ein Record anbieten, der besitzt unter Win32 class operators(!) Klassen nicht (!)
Markus Kinzler
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:55
Jaja, soweit waren wir ja schon. Nur wie regeln das andere Sprachen bei Klassen? Diese Einschränkung schien ja eine größere Bestürzung hervorzurufen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Operatoren in Turbo Delphi (Win32) überladen?

  Alt 8. Sep 2006, 14:56
Zitat:
Nur wie regeln das andere Sprachen bei Klassen? Diese Einschränkung schien ja eine größere Bestürzung hervorzurufen.
Da geht es wie auch unter D.Net
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:01 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