07. maj 2004 - 10:49Der er
1 kommentar og 2 løsninger
Operator Overloading
Er der én der vil forklare mig med et eksempel, hvad begrebet "operator overloading" dækker over? Jeg har nu læst om det i to forskellige bøger uden at fatte det. Eks. gerne i C#
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Operator overloading betyder at du kan lade operatorer +-*/ etc. oprerere på dine klasser for at få en lidt kønnere syntax end ved brug af metode kald.
Man bør kun bruge det hvis operatorens betydning er intuitiv.
C# eksempel:
using System;
public class Vector3D { private int x; private int y; private int z; public Vector3D(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } public override string ToString() { return ("[" + x + "," + y + "," + z + "]"); } public static Vector3D operator+(Vector3D v1, Vector3D v2) { return new Vector3D(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z); } public static Vector3D operator-(Vector3D v1, Vector3D v2) { return new Vector3D(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z); } }
class MainClass { public static void Main(string[] args) { Vector3D a = new Vector3D(1, 2, 3); Vector3D b = new Vector3D(1, 2, 4); Console.WriteLine(a + " + " + b + " = " + (a + b)); Console.WriteLine(a + " - " + b + " = " + (a - b)); } }
Iøvrigt så ligner C# operator overload mere C++ friend operator overload end C++ member operator overload.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.