![]() |
operator überladen
hallo freunde der sonne, ich möchte den operator + überladen. dummerweise kennt mein compiler den class operator add nicht. hier der quelltext:
Delphi-Quellcode:
wo liegt der fehler?
unit uvektor;
interface uses types,math; type tvektor=packed record x,y,z:extended; class operator add(const a,b:tvektor):tvektor; end; implementation class operator add(const a,b:tvektor):tvektor; begin result.x:=a.x+b.x; result.y:=a.y+b.y; result.z:=a.z+b.z; end; |
Re: operator überladen
Hallo,
wie der name class schon sagt. Mache eine Klasse aus deinem Record. Heiko |
Re: operator überladen
nanu, ich dachte mit klassen funktioniert es nicht? außerdem war in dem tutorial (die erste Seite bei der Suche nach begriff 'Operatoren überladen) auch ein record, der überladen wurde!
|
Re: operator überladen
Zitat:
|
Re: operator überladen
Operatoren gehen in Delphi32 nur mir Records
Zitat:
dann sollte der Compiler dieses eigentlich auch kennen :gruebel: einige Themen dazu: ![]() notfalls könnte man auch da mal reingucken: ![]() |
Re: operator überladen
der compiler sagt: undeklarierter bezeichner 'result',
was ja total abstrus ist, schließlich agiert der class operator ja als funktion. =( also unter record statt packed record kommt der gleich fehler, daran liegt es nicht =( |
Re: operator überladen
vesuch es mal so (falls das nicht nur ein Tippfehler im Forum ist, obwohl ich mich dann wundern würde, warum dann er erst beim Result meckert)
Code:
class operator [b]tvektor.[/b]add(const a, b: tvektor): tvektor;
begin result.x:=a.x+b.x; result.y:=a.y+b.y; result.z:=a.z+b.z; end; |
Re: operator überladen
vielen dank, das war der fehler!
|
Re: operator überladen
Kann man auch auf diesem Wege Operatoren von Enums überladen, um sich eine zusätzliche BlaToString-Funktion zu sparen? Habs bisher nicht hinbekommen.
Edit: Rechtschreibung korrigiert. Ich brauch eindeutig Kaffee :vernupft: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz