源码下载:http://dl2.csdn.net/down4/20070910/10205619937.rar
using
System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
... {
class Program
...{
static void Main(string[] args)
...{
Vector v1, v2, v3;
v1 = new Vector(1.0, 1.5, 2.0);
v2 = new Vector(0.0, 0.0, -10.0);
v3 = v1 + v2;
Console.WriteLine("v1=" + v1);
Console.WriteLine("v2=" + v2);
Console.WriteLine("v1+v2=" + v3);
Console.WriteLine("2*v3=" + 2 * v3);
v3 += v2;
Console.WriteLine("v3+=v2 guves" + v3);
v3 = v1 * 2;
Console.WriteLine("Setting v3=v1*2 gives" + v3);
double dot = v1 * v3;
Console.WriteLine("v1*v3=" + dot);
Console.ReadKey();
}
}
struct Vector
...{
public double x, y, z;
public Vector(double x, double y, double z)
...{
this.x = x;
this.y = y;
this.z = z;
}
public Vector(Vector hs)
...{
this.x = hs.x;
this.y = hs.y;
this.z = hs.z;
}
public override string ToString() // ToString()方法重写;
...{
return "(" + x + "," + y + "," + z + ")";
}
//运算符的重载;
public static Vector operator +(Vector lhs, Vector rhs)
...{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
public static Vector operator *(double lhs, Vector rhs)
...{
return new Vector(lhs * rhs.x, lhs * rhs.y, lhs * rhs.z);
}
public static Vector operator *(Vector lhs, double rhs)
...{
return new Vector(rhs * lhs.x, rhs * lhs.y, rhs * lhs.z);
}
public static double operator *(Vector rhs, Vector lhs)
...{
return lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;
}
}
}
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
... {
class Program
...{
static void Main(string[] args)
...{
Vector v1, v2, v3;
v1 = new Vector(1.0, 1.5, 2.0);
v2 = new Vector(0.0, 0.0, -10.0);
v3 = v1 + v2;
Console.WriteLine("v1=" + v1);
Console.WriteLine("v2=" + v2);
Console.WriteLine("v1+v2=" + v3);
Console.WriteLine("2*v3=" + 2 * v3);
v3 += v2;
Console.WriteLine("v3+=v2 guves" + v3);
v3 = v1 * 2;
Console.WriteLine("Setting v3=v1*2 gives" + v3);
double dot = v1 * v3;
Console.WriteLine("v1*v3=" + dot);
Console.ReadKey();
}
}
struct Vector
...{
public double x, y, z;
public Vector(double x, double y, double z)
...{
this.x = x;
this.y = y;
this.z = z;
}
public Vector(Vector hs)
...{
this.x = hs.x;
this.y = hs.y;
this.z = hs.z;
}
public override string ToString() // ToString()方法重写;
...{
return "(" + x + "," + y + "," + z + ")";
}
//运算符的重载;
public static Vector operator +(Vector lhs, Vector rhs)
...{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
public static Vector operator *(double lhs, Vector rhs)
...{
return new Vector(lhs * rhs.x, lhs * rhs.y, lhs * rhs.z);
}
public static Vector operator *(Vector lhs, double rhs)
...{
return new Vector(rhs * lhs.x, rhs * lhs.y, rhs * lhs.z);
}
public static double operator *(Vector rhs, Vector lhs)
...{
return lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;
}
}
}