AGB  ·  Datenschutz  ·  Impressum  







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

Operatoren überschreiben

Ein Thema von Matze · begonnen am 15. Dez 2005 · letzter Beitrag vom 17. Mai 2008
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Operatoren überschreiben

  Alt 15. Dez 2005, 08:41
Hallo,

das klingt etwas absurd und ich benötige es auch nicht, aber mich interessiert, ob man in Delphi Operatoren überschreiben kann. Dass ich z.B. sage, das "+" soll andere Operationen ausführen, als es normalerweise der Fall ist.

Geht das mit Delphi?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 08:43
In Delphi 2006 - Ja. Siehe Videos von Daniel zu BDS 2006
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 08:45
Hallo, stimmt, da geht das, das habe ich gesehen. Also unter Delphi-Versionen kleiner 2006 ist dies gar nicht möglich?
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 09:23
Zitat von Matze:
Hallo, stimmt, da geht das, das habe ich gesehen. Also unter Delphi-Versionen kleiner 2006 ist dies gar nicht möglich?
korrekt. Erst ab Delphi 2006
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 09:25
Zitat von jim_raynor:
korrekt. Erst ab Delphi 2006
Ok, danke.
Ada, das ja auch auf Pascal basiert, kann das seit 1995, darum habe ich gefragt.

Code:
[b][color=Navy]with[/color][/b] Ada.Integer_Text_IO;

[b][color=green]------------------------------------------------------------------------------
-- PROCEDURE: MultiRationalNumber
-- DESCRIPTION:
--   Main function to add 2 rational numbers
------------------------------------------------------------------------------[/color][/b]
[b][color=Navy]procedure[/color][/b] MultiRationalNumber [b][color=Navy]is[/color][/b]

  [b][color=Navy]type[/color][/b] TRationalNumber [b][color=Navy]is record[/color][/b]
    Numerator: Integer;
    Denominator: Natural;
  [b][color=Navy]end record[/color][/b];
 
[b][color=green] ----------------------------------------------------------------------------
  -- FUNCTION: "*"
  -- DESCRIPTION:
  --   Addition of 2 rational numbers
  -- PARAMETER:
  --   +Number1: 1st rat. number
  --   +Number2: 2nd rat. number
  -- RETURN:
  --   Number1 * Number 2
  -- NOTES: Result is unabridged
  ----------------------------------------------------------------------------[/color][/b]
  [b][color=Navy]function[/color][/b] "*" (Number1, Number2: TRationalNumber) [b][color=Navy]return[/color][/b] TRationalNumber [b][color=Navy]is[/color][/b]
    Result: TRationalNumber;
  [b][color=Navy]begin[/color][/b]
    Result.Numerator := Number1.Numerator * Number2.Numerator;
    Result.Denominator := Number1.Denominator * Number2.Denominator;
   
    [b][color=Navy]return[/color][/b] Result;
  [b][color=Navy]end[/color][/b] "*";
 
  Rat1, Rat2: TRationalNumber;
  NewRationalNumber: TRationalNumber;
[b][color=Navy]begin[/color][/b]
  Rat1.Numerator := 4;
  Rat1.Denominator := 5;
 
  Rat2.Numerator := 7;
  Rat2.Denominator := 12;
 
  NewRationalNumber := Rat1 * Rat2;
 
  Ada.Integer_Text_IO.Put(NewRationalNumber.Numerator);
  Ada.Integer_Text_IO.Put(NewRationalNumber.Denominator);
[b][color=Navy]end[/color][/b];
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 09:33
Zitat von Matze:
.... ob man in Delphi Operatoren überschreiben kann. ...
Hai ihr,

es passt zwar nicht genau zum Thread
Aber eine Frage: Kann ich denn auch einen eigenen Operator definieren?

Zum Beispiel:
Code:
var
  a , b , c : boolean;
begin
  a := True;
  b := True
  c := a [b]NAND[/b] b;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#7

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 10:07
Zitat von Sharky:
Kann ich denn auch einen eigenen Operator definieren?
Da die überschriebenen Operatoren mit vordefinierten Namen angesprochen werden, ist davon auszugehen, dass der Compiler keine anderen kennt (lies: ich denke, nein).
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 10:21
Wenn man eine .NET Anwendung schreibt, dann kann man Operatoren auch schon seit Delphi 8 überschreiben.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 22:33
Oder FreePascal benutzen, da geht das auch schon länger
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
LarsMiddendorf

Registriert seit: 4. Sep 2003
Ort: Hemer
104 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Operatoren überschreiben

  Alt 15. Dez 2005, 22:44
Man kann auch schon ab Delphi4 (glaube ich) einen eigenen Variant Type definierten und hat dafür dann eine Klasse mit den ganzen Operatoren registrieren. In der Hilfe ist ein Beispiel wie man damit eine Klasse für komplexe Zahlen macht.
  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 11: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