webForumDet fria alternativet

class operatorer

5 svar · 328 visningar · startad av Alpha II

Alpha IIMedlem sedan maj 20002 993 inlägg
#1

Hur kan jag använda operatorer för en klass som i c++?

jag vill kunna ha en class som heter tex TPoint som innehåller X och Y. Sen vill jag kunna skriva Point3 := Point1 + Point2;

jultomten17Medlem sedan sep. 20027 inlägg
#2
var
p1,p2,p3 : TPoint;
begin
p1.X := p2.X + p3.X;
p1.Y := p2.Y + p3.Y;
end;

var de nåt sånt du hade tänkt dig?

Alpha IIMedlem sedan maj 20002 993 inlägg
#3

jo så fast jag vill kunna skriva

p3 := p1 + p2;

och så görs koden du skrev automatiskt :)

UlfTMedlem sedan maj 20018 027 inlägg
#4

Jag kan inte Delphi, men det du ska använda, kallas "Overloaded operator". Det står om sådana här: http://www.freepascal.org/docs-html/ref/node12.html

agneta_rungMedlem sedan juli 2002145 inlägg
#5

Jag tror inte det går i Delphi att göra som du skulle vilja... Men en funktion som adderar två punkter och returnerar resultatet skulle kunna se ut så här:

function AddPoints(p1, p2: TPoint): TPoint;
begin
  Result.x := p1.x + p2.x;
  Result.y := p1.y + p2.y
end;

Lägg den på något ställe som är tillgängligt från varje ställe där du vill addera punkter. Så blir det i alla fall bara en kodrad varje gång...

p3 := AddPoints(p1, p2);

Notera också att TPoint är en typ i Delphi, så vill du lösa det med en egen klass ska du kalla den något annat.

Alpha IIMedlem sedan maj 20002 993 inlägg
#6

Kasst. Tror jag ska börja koda i c++. Problemet är att jag hela tiden stöter på problem i c++ som jag inte har en aning hur man löser.

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)