Overload shift operator

image_pdfimage_print

/*
C#: The Complete Reference
by Herbert Schildt

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/

// Overload < and >.

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 <. public static bool operator <(ThreeD op1, ThreeD op2) { if((op1.x < op2.x) && (op1.y < op2.y) && (op1.z < op2.z)) return true; else return false; } // Overload >.
public static bool operator >(ThreeD op1, ThreeD op2)
{
if((op1.x > op2.x) && (op1.y > op2.y) && (op1.z > op2.z))
return true;
else
return false;
}

// Show X, Y, Z coordinates.
public void show()
{
Console.WriteLine(x + “, ” + y + “, ” + z);
}
}

public class ThreeDDemo4 {

public static void Main() {
ThreeD a = new ThreeD(5, 6, 7);
ThreeD b = new ThreeD(10, 10, 10);
ThreeD c = new ThreeD(1, 2, 3);

Console.Write(“Here is a: “);
a.show();
Console.Write(“Here is b: “);
b.show();
Console.Write(“Here is c: “);
c.show();
Console.WriteLine();

if(a > c) Console.WriteLine(“a > c is true”);
if(a < c) Console.WriteLine("a < c is true"); if(a > b) Console.WriteLine(“a > b is true”);
if(a < b) Console.WriteLine("a < b is true"); } } [/csharp]