AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

operator überladen

Ein Thema von vsilverlord · begonnen am 16. Mai 2009 · letzter Beitrag vom 11. Jul 2009
Antwort Antwort
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#1

operator überladen

  Alt 16. Mai 2009, 15:46
hallo freunde der sonne, ich möchte den operator + überladen. dummerweise kennt mein compiler den class operator add nicht. hier der quelltext:
Delphi-Quellcode:
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;
wo liegt der fehler?
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: operator überladen

  Alt 16. Mai 2009, 15:53
Hallo,

wie der name class schon sagt.
Mache eine Klasse aus deinem Record.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#3

Re: operator überladen

  Alt 16. Mai 2009, 16:05
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!
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

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

Re: operator überladen

  Alt 16. Mai 2009, 16:08
Zitat von vsilverlord:
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!
Operatorüberladung mit records geht in Delphi nur mit Delphi.Net und Prism. Unter Delphi W32 funktioniert Operator Overloading nur mit Klassen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#5

Re: operator überladen

  Alt 16. Mai 2009, 16:16
Operatoren gehen in Delphi32 nur mir Records

Zitat:
wo liegt der fehler?
du nutzt auch grad dein D2009?
dann sollte der Compiler dieses eigentlich auch kennen

einige Themen dazu: Hier im Forum suchenclass operator

notfalls könnte man auch da mal reingucken: Hier im Forum suchenMiniMathLib
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: operator überladen

  Alt 16. Mai 2009, 16:21
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 =(
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#7

Re: operator überladen

  Alt 16. Mai 2009, 16:26
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#8

Re: operator überladen

  Alt 16. Mai 2009, 16:31
vielen dank, das war der fehler!
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#9

Re: operator überladen

  Alt 11. Jul 2009, 14:28
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:41 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