运算符重载
来源:互联网 发布:echarts ajax动态数据 编辑:程序博客网 时间:2024/05/30 22:49
using System;
namespace Ch12Ex03
...{
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 rhs)
...{
x = rhs.x;
y = rhs.y;
z = rhs.z;
}
public override string 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 double operator *(Vector lhs, Vector rhs)
...{
return lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;
}
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 rhs * lhs;
}
public static bool operator == (Vector lhs, Vector rhs)
...{
if (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z)
return true;
else
return false;
}
public static bool operator !=(Vector lhs, Vector rhs)
...{
return !(lhs == rhs);
}
}
class vechtors
...{
static void Main()
...{
//Vector vect1, vect2, vect3;
//vect1 = new Vector(3.0, 3.0, 1.0);
//vect2 = new Vector(2.0, -4.0, -4.0);
//vect3 = vect1 + vect2;
//Console.WriteLine("vect1 = " + vect1.ToString());
//Console.WriteLine("vect2 = " + vect2.ToString());
//Console.WriteLine("vect3 = " + vect3.ToString());
//Console.ReadKey();
// Vector vect1, vect2, vect3;
//vect1 = new Vector(1.0, 1.5, 2.0);
//vect2 = new Vector(0.0, 0.0,-10.0);
//vect3 = vect1 + vect2;
//Console.WriteLine("vect1 = " + vect1);
//Console.WriteLine("vect2 = " + vect2);
//Console.WriteLine("vect3 = vect1 + vect2 = " + vect3);
//Console.WriteLine("2*vect3 = " + 2*vect3);
//vect3 += vect2;
//Console.WriteLine("vect3+=vect2 gives " + vect3);
//vect3 = vect1*2;
//Console.WriteLine("Setting vect3=vect1*2 gives " + vect3);
//double dot = vect1*vect3;
//Console.WriteLine("vect1*vect3 = " + dot);
Vector vect1, vect2, vect3;
vect1 = new Vector(3.0, 3.0,-10.0);
vect2 = new Vector(3.0, 3.0,-10.0);
vect3 = new Vector(2.0, 3.0, 6.0);
Console.WriteLine("vect1==vect2 returns " + (vect1==vect2));
Console.WriteLine("vect1==vect3 returns " + (vect1==vect3));
Console.WriteLine("vect2==vect3 returns " + (vect2==vect3));
Console.WriteLine();
Console.WriteLine("vect1!=vect2 returns " + (vect1!=vect2));
Console.WriteLine("vect1!=vect3 returns " + (vect1!=vect3));
Console.WriteLine("vect2!=vect3 returns " + (vect2!=vect3));
Console.ReadKey();
}
}
}
namespace Ch12Ex03
...{
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 rhs)
...{
x = rhs.x;
y = rhs.y;
z = rhs.z;
}
public override string 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 double operator *(Vector lhs, Vector rhs)
...{
return lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;
}
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 rhs * lhs;
}
public static bool operator == (Vector lhs, Vector rhs)
...{
if (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z)
return true;
else
return false;
}
public static bool operator !=(Vector lhs, Vector rhs)
...{
return !(lhs == rhs);
}
}
class vechtors
...{
static void Main()
...{
//Vector vect1, vect2, vect3;
//vect1 = new Vector(3.0, 3.0, 1.0);
//vect2 = new Vector(2.0, -4.0, -4.0);
//vect3 = vect1 + vect2;
//Console.WriteLine("vect1 = " + vect1.ToString());
//Console.WriteLine("vect2 = " + vect2.ToString());
//Console.WriteLine("vect3 = " + vect3.ToString());
//Console.ReadKey();
// Vector vect1, vect2, vect3;
//vect1 = new Vector(1.0, 1.5, 2.0);
//vect2 = new Vector(0.0, 0.0,-10.0);
//vect3 = vect1 + vect2;
//Console.WriteLine("vect1 = " + vect1);
//Console.WriteLine("vect2 = " + vect2);
//Console.WriteLine("vect3 = vect1 + vect2 = " + vect3);
//Console.WriteLine("2*vect3 = " + 2*vect3);
//vect3 += vect2;
//Console.WriteLine("vect3+=vect2 gives " + vect3);
//vect3 = vect1*2;
//Console.WriteLine("Setting vect3=vect1*2 gives " + vect3);
//double dot = vect1*vect3;
//Console.WriteLine("vect1*vect3 = " + dot);
Vector vect1, vect2, vect3;
vect1 = new Vector(3.0, 3.0,-10.0);
vect2 = new Vector(3.0, 3.0,-10.0);
vect3 = new Vector(2.0, 3.0, 6.0);
Console.WriteLine("vect1==vect2 returns " + (vect1==vect2));
Console.WriteLine("vect1==vect3 returns " + (vect1==vect3));
Console.WriteLine("vect2==vect3 returns " + (vect2==vect3));
Console.WriteLine();
Console.WriteLine("vect1!=vect2 returns " + (vect1!=vect2));
Console.WriteLine("vect1!=vect3 returns " + (vect1!=vect3));
Console.WriteLine("vect2!=vect3 returns " + (vect2!=vect3));
Console.ReadKey();
}
}
}
- 运算符重载 [++,--,+,<<; &&,||(不可重载)]
- 重载之运算符重载
- 重载赋值运算符
- C++运算符重载
- 运算符重载
- 运算符重载总结
- 运算符重载例子
- 运算符重载
- 运算符重载
- 基础:运算符重载
- 运算符重载
- 运算符重载
- 重载赋值运算符
- C#运算符重载
- C++-运算符重载
- 重载赋值运算符
- 运算符重载
- 有关运算符重载
- 吃出健康女生
- 谁会DIV+CSS啊?
- 阿Sam的设计模式学习笔记---- 原型(Prototype)模式
- javascript操作Select标记中options集合
- 深入剖析JSP和Servlet对中文的处理过程
- 运算符重载
- 开发笔记:Python的转码
- .net中前台javascript与后台c#函数相互调用问题
- VS 2003不能启动调试错误,解决备忘
- Lesson 03: The SqlCommand Object(SqlCommand 对象中的方法)
- MFC教程(10)-- 内存分配方式和调试机制
- OpenLDAP
- Lesson 02: The SqlConnection Object(SqlConnection对象)
- MFC教程(11)-- MFC下的文件类