黑马程序员技术交流社区
标题:
怎么实现运算符的重载?
[打印本页]
作者:
嘴角上揚ぃ读不
时间:
2014-5-27 21:01
标题:
怎么实现运算符的重载?
本帖最后由 嘴角上揚ぃ读不 于 2014-5-28 20:01 编辑
怎么实现运算符的重载?
作者:
劇情侢媄終究媞
时间:
2014-5-27 22:10
1.在类中或者结构中用operator 关键字来声明运算符
2.所有的运算符重载都声明为public (公开的)和static(静态的)
作者:
嘴角上揚ぃ读不
时间:
2014-5-27 22:25
劇情侢媄終究媞 发表于 2014-5-27 22:10
1.在类中或者结构中用operator 关键字来声明运算符
2.所有的运算符重载都声明为public (公开的)和static(静 ...
最好有代码的事例
作者:
yllogininbh
时间:
2014-5-31 22:08
本帖最后由 yllogininbh 于 2014-5-31 22:09 编辑
class Program
{
static void Main(string[] args)
{
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.ReadLine();
}
}
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)
{
this.x = rhs.x;
this.y = rhs.y;
this.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;
}
}
复制代码
运算符重载
作者:
yllogininbh
时间:
2014-5-31 23:38
加
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2