' FB 1.05.0 Win64 Type Vector As Double x, y Declare Operator Cast() As String End Type Operator Vector.Cast() As String Return "[" + Str(x) + ", " + Str(y) + "]" End Operator Operator + (vec1 As Vector, vec2 As Vector) As Vector Return Type(vec1.x + vec2.x, vec1.y + vec2.y) End Operator Operator - (vec1 As Vector, vec2 As Vector) As Vector Return Type(vec1.x - vec2.x, vec1.y - vec2.y) End Operator Operator * (vec As Vector, scalar As Double) As Vector Return Type(vec.x * scalar, vec.y * scalar) End Operator Operator / (vec As Vector, scalar As Double) As Vector ' No need to check for division by zero as we're using Doubles Return Type(vec.x / scalar, vec.y / scalar) End Operator Dim v1 As Vector = (5, 7) Dim v2 As Vector = (2, 3) Print v1; " + "; v2; " = "; v1 + v2 Print v1; " - "; v2; " = "; v1 - v2 Print v1; " * "; 11; " = "; v1 * 11.0 Print v1; " / "; 2; " = "; v1 / 2.0 Print Print "Press any key to quit" Sleep