Mega Code Archive

 
Categories / C# / Class Interface
 

More operator overloading

/* C#: The Complete Reference  by Herbert Schildt  Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // More operator overloading.    using System;    // A three-dimensional coordinate class.  class ThreeD {    int x, y, z; // 3-D coordinates        public ThreeD() { x = y = z = 0; }    public ThreeD(int i, int j, int k) { x = i; y = j; z = k; }      // Overload binary +.    public static ThreeD operator +(ThreeD op1, ThreeD op2)    {      ThreeD result = new ThreeD();        /* This adds together the coordinates of the two points         and returns the result. */      result.x = op1.x + op2.x;       result.y = op1.y + op2.y;       result.z = op1.z + op2.z;         return result;    }      // Overload binary -.    public static ThreeD operator -(ThreeD op1, ThreeD op2)    {      ThreeD result = new ThreeD();        /* Notice the order of the operands. op1 is the left         operand and op2 is the right. */      result.x = op1.x - op2.x;       result.y = op1.y - op2.y;       result.z = op1.z - op2.z;         return result;    }        // Overload unary -.    public static ThreeD operator -(ThreeD op)    {      ThreeD result = new ThreeD();        result.x = -op.x;      result.y = -op.y;       result.z = -op.z;         return result;    }      // Overload unary ++.    public static ThreeD operator ++(ThreeD op)    {      // for ++, modify argument      op.x++;      op.y++;       op.z++;         return op;    }      // Show X, Y, Z coordinates.    public void show()    {      Console.WriteLine(x + ", " + y + ", " + z);    }  }    public class ThreeDDemo1 {    public static void Main() {      ThreeD a = new ThreeD(1, 2, 3);      ThreeD b = new ThreeD(10, 10, 10);      ThreeD c = new ThreeD();        Console.Write("Here is a: ");      a.show();      Console.WriteLine();      Console.Write("Here is b: ");      b.show();      Console.WriteLine();        c = a + b; // add a and b together      Console.Write("Result of a + b: ");      c.show();      Console.WriteLine();        c = a + b + c; // add a, b and c together      Console.Write("Result of a + b + c: ");      c.show();      Console.WriteLine();        c = c - a; // subtract a      Console.Write("Result of c - a: ");      c.show();      Console.WriteLine();        c = c - b; // subtract b      Console.Write("Result of c - b: ");      c.show();      Console.WriteLine();        c = -a; // assign -a to c      Console.Write("Result of -a: ");      c.show();      Console.WriteLine();        a++; // increment a      Console.Write("Result of a++: ");      a.show();      }  }