Overload true and fase for ThreeD : Operator Overloading « Class Interface « C# / C Sharp






Overload true and fase for ThreeD

Overload true and fase for ThreeD
/*
C#: The Complete Reference 
by Herbert Schildt 

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


// Overload true and fase for ThreeD. 
 
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 true.   
  public static bool operator true(ThreeD op) { 
    if((op.x != 0) || (op.y != 0) || (op.z != 0)) 
      return true; // at least one coordinate is non-zero 
    else 
      return false; 
  }   
 
  // Overload false. 
  public static bool operator false(ThreeD op) { 
    if((op.x == 0) && (op.y == 0) && (op.z == 0)) 
      return true; // all coordinates are zero 
    else 
      return false; 
  }   
 
  // 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 TrueFalseDemo {   
  public static void Main() {   
    ThreeD a = new ThreeD(5, 6, 7);   
    ThreeD b = new ThreeD(10, 10, 10);   
    ThreeD c = new ThreeD(0, 0, 0);   
   
    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) Console.WriteLine("a is true."); 
    else Console.WriteLine("a is false."); 
 
    if(b) Console.WriteLine("b is true."); 
    else Console.WriteLine("b is false."); 
 
    if(c) Console.WriteLine("c is true."); 
    else Console.WriteLine("c is false."); 
 
    Console.WriteLine(); 
 
    Console.WriteLine("Control a loop using a ThreeD object."); 
    do { 
      b.show(); 
      b--; 
    } while(b); 
 
  }   
}


           
       








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 shift operatorOverload shift operator
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