| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:关于运算符重载
只看楼主 加入收藏
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
结帖率:50%
收藏
 问题点数:0 回复次数:4 
关于运算符重载
c sharp中的运算符重载是什么概念呢??望知情者替俺举个例子。谢谢!万分感激!!
搜索更多相关主题的帖子: 运算符 重载 
2007-09-18 00:34
crazymk
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-8-30
收藏
得分:0 
"+"運算符其實也是一個函數,"+"代表的這個函數可以重載

すばらしいコードを書き出すのは楽しい事です
2007-09-18 09:07
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
收藏
得分:0 
给个例子好吗??



c sharp初学者
2007-09-18 09:14
crazymk
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-8-30
收藏
得分:0 

msdn上的例子
// cs_keyword_operator.cs
using System;
class Fraction
{
int num, den;
public Fraction(int num, int den)
{
this.num = num;
this.den = den;
}

// overload operator +
public static Fraction operator +(Fraction a, Fraction b)
{
return new Fraction(a.num * b.den + b.num * a.den,
a.den * b.den);
}

// overload operator *
public static Fraction operator *(Fraction a, Fraction b)
{
return new Fraction(a.num * b.num, a.den * b.den);
}

// define operator double
public static implicit operator double(Fraction f)
{
return (double)f.num / f.den;
}
}

class Test
{
public static void Main()
{
Fraction a = new Fraction(1, 2);
Fraction b = new Fraction(3, 7);
Fraction c = new Fraction(2, 3);
Console.WriteLine((double)(a * b + c));
}
}


すばらしいコードを書き出すのは楽しい事です
2007-09-18 09:25
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
收藏
得分:0 
简单说,自己定义的数据类型需要进行特定的运算时,就要重载运算符。
比如有一个人的类,需要比较人的年龄大小就需要了。

public class person(string thename,int theage)
{
name = thename;
age = theage;
}
...
...
public static bool operator > (person p1,person p2)
{
if(p1.age > p2.age )
return true;
else
return false;
}

你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-09-18 12:48
快速回复:关于运算符重载
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011270 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved