Overload shift operator : Operator Overloading « Class Interface « C# / C Sharp






Overload shift operator

Overload shift operator
/*
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");  
  }  
}


           
       








Related examples in the same category

1.An example of operator overloadingAn example of operator overloading
2.More operator overloadingMore operator overloading
3.Overload addition for object + object, and for object + intOverload addition for object + object, and 
   for object + int
4.Overload the + for object + object, object + int, and int + objectOverload the + for object + object, 
   object + int, and int + object
5.Overload true and fase for ThreeDOverload true and fase for ThreeD
6.A better way to overload !, | and & for ThreeD. This version automatically enables the && and || operatorsA better way to overload !, | and & for ThreeD. 
   This version automatically enables the && and || operators
7.illustrates operator overloadingillustrates operator overloading
8.Demonstrates overloading the addition operator for two class objectsDemonstrates overloading the addition operator for two class objects
9.overloaded operator + takes two fractionsoverloaded operator + takes two fractions
10.Overloaded operator: whether two Fractions are equalOverloaded operator: whether two Fractions are equal
11.Overload != operatorOverload != operator
12.Operator Overloading:An ExampleOperator Overloading:An Example
13.Sorting and Searching:Overloading Relational OperatorsSorting and Searching:Overloading Relational Operators