jetzt melde ich mich schon wieder mit einem Anfängerproblem. Ich habe inzwischen etwas über Klassen in Delphi gelesen. Da ich in anderen Programmiersprachen zum Üben z. B. eine Klasse für komplexe Zahlen geschrieben habe, möchte ich das jetzt auch mit Delphi machen. Ein wesentlicher Bestandteil ist es, Operationen wie z. B. die Addition zu überladen. Wie ich jedoch gelesen habe, ist es u. U. nicht möglich, Operatoren in Klassen zu überladen, sondern nur in records.
Ich habe das Überladen des Operators direkt in der Klasse versucht, etwa so (das ist meine Klassendeklaration):
Code: Alles auswählen
type
TcomplxNbr = class
private
Freal : Double;
Fim : Double;
public
constructor create; overload;
constructor create(x, y : Double); overload;
procedure setReal(x : Double);
procedure setIm(y : Double);
function getReal: Double;
function getIm: Double;
property real : Double read getReal write setReal;
property im : Double read getIm write setIm;
class operator add(a, b: TcomplxNbr): TcomplxNbr; // HIER TRITT EIN FEHLER AUF
end;
Wie ich schon oben erwähnt habe, liegt das wohl daran, dass man die Operatoren nicht in den Klassen, sondern nur in Records überladen kann.
Gibt es irgendeinen Trick bzw. eine Möglichkeit, die Klasse beizubehalten und die Operatoren trotzdem zu überladen?