Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Operatoren überladen (z.B. bei komplexen Zahlen) (https://www.delphipraxis.net/27734-operatoren-ueberladen-z-b-bei-komplexen-zahlen.html)

jungdelphin 14. Aug 2004 20:23


Operatoren überladen (z.B. bei komplexen Zahlen)
 
Wie kann ich das in Delphi 6 Personal realisieren? In C++ sieht es ja fast genauso aus.
Das Beispiel ist angeblich für Delphi.NET. Was ist dieses .NET überhaupt?

Delphi-Quellcode:
type
  TMyClass = class
    class operator Add(a, b: TMyClass): TMyClass;
  end;


Implementierung:

class operator TMyClass.Add(a, b: TMyClass): TMyClass;
begin
 ...
end;

nailor 14. Aug 2004 20:26

Re: Operatoren überladen (z.B. bei komplexen Zahlen)
 
.NET ist was schickes neues (ein bisschen vergleichbar mit WINAPI). gibt es erst in delphi 8. wie man da operatoren überladt weiß ich nicht. ind delphi 6/7 geht es garnicht.

in c#, c++, c, free pascal ... geht es.

muss dir wohl zu der klasse der komplexen zahlen noch die passenden funktionen schreiben.

dizzy 14. Aug 2004 20:40

Re: Operatoren überladen (z.B. bei komplexen Zahlen)
 
http://www.delphipraxis.net/internal...ct.php?t=29480 vorletzter Beitrag. In dem Download ist meine Unit "QMath.pas" mit dabei. Darin sind etliche fertige Funktionen zum Rechnen mit komplexen Zahlen und Quaternionen - allerdings nur in karthesischer Darstellung!

Die Potenzierung funktioniert bisher nur für den Realteil der Exponenten. exp() Dagegen wie es sein sollte. Die Quaterniondivision ist auch noch nicht 100%ig - da hab ich die Tage erst eine weitere schönere Möglichkeit gesehen das zu bewerkstelligen - aber wer braucht schon Quaternionen... :mrgreen:

gruss,
dizzy

jungdelphin 14. Aug 2004 20:53

Re: Operatoren überladen (z.B. bei komplexen Zahlen)
 
Danke für die schnellen Antworten.
Mir kam es jetzt nicht nur auf die komplexen Zahlen an.
Die Arithmetik dazu ist ja schnell geschrieben. Sondern um die Programmiertechnik, die ich bis jetzt nur von c++ kannte. Nun bin ich verwundert auf analogen Delphicode gestoßen, dieser compiliert bei mir aber nicht. Wird wohl an dem Wunder.NET liegen.

Mit diesen Operatoren und dynamischen arrays wollte ich Matrizen und andere Objekte implementieren, so als billigen Mathematicaersatz.

LarsMiddendorf 14. Aug 2004 21:11

Re: Operatoren überladen (z.B. bei komplexen Zahlen)
 
Bei Delphi6 kann man, abgesehen vom [] Operator bei allen Klassen, die restlichen Operatoren nur für variante Typen überladen. Man erstellt dazu eine neue Klasse die entweder von TCustomVariantType,TInvokeableVariantType oder TPublishableVariantType angeleitet ist und die entsprechenden Operatoren,Methoden oder Properties implementiert. In der Hilfe ist auch ein Beispiel für komplexe Zahlen angegeben.
In der Unit VarCmplx ist der Type TComplexVariantType implementiert, der die entsprechenden Operatoren für komplexe Zahlen überlädt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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