欢迎来到天天文库
浏览记录
ID:52610961
大小:381.51 KB
页数:10页
时间:2020-04-11
《讲稿文字规范.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章面向对象编程方法王德俊上海交通大学继续教育学院第4章面向对象编程方法4.1一个简单的程序4.2类和对象4.3类的继承、重载与多态4.4运算符的重载4.5接口及其实现4.6方法的委托4.7常用的几个类4.8命名空间4.4运算符的重载4.4.1一元运算符重载4.4.2二元运算符重载4.4.3类型转换运算符重载4.4运算符的重载4.4.1一元运算符重载可以重载的一元运算符包括:+(取正)、-(取负)、!、~、++、--、true和false。一元运算符重载的格式如下:返回类型operator运算符(类名对象形参){//实现重载的语句}其中,operator是运算符重载的关键字。4.4运算符的
2、重载4.4.1一元运算符重载classComplex//虚数类{privatedoubleRP;//实部privatedoubleIP;//虚部publicComplex(){RP=IP=0;}publicComplex(doubler,doublei){RP=r;IP=i;}publicstaticComplexoperator-(Complexc)//一元运算符重载{Complexc2=newComplex();c2.RP=-c.RP;c2.IP=-c.IP;returnc2;}publicvoidShow()//输出虚数{Console.WriteLine("{0}+{1}*i",RP
3、,IP);}}对一元运算符“-”进行了重载,重载后的功能是:取给定的虚数相反数(虚数的实部和虚部分别变为原来的相反数),并以新的虚数返回用下列代码对该一元运算符的重载效果进行检验:Complexc=newComplex(1,2);Complexc2;c2=-c;//调用重载的运算符c.Show();c2.Show();输出结果如下:1+2*i-1+-2*i4.4运算符的重载4.4.2二元运算符重载可以重载的二元运算符包括:+(加法)、-(减法)、*、/、%、&、
4、、^、<<、>>、==、!=、<、>、<=、>=。二元运算符重载的格式如下:返回类型operator运算符(类名对象形参1,类名对
5、象形参2){//实现重载的语句}4.4运算符的重载4.4.2二元运算符重载例如,在虚数类Complex中添加二元运算“+”(加法)的重载方法,其功能是将给定的两个虚数相加后形成新的虚数并返回:publicstaticComplexoperator+(Complexc1,Complexc2)//加号+重载{Complexc3=newComplex();c3.RP=c1.RP+c2.RP;c3.IP=c1.IP+c2.IP;returnc3;}4.4运算符的重载4.4.3类型转换运算符重载在C#中,类型转换运算符重载的格式如下:publicstaticimplicit/explicitopera
6、torT(S参数){//实现重载的语句}implicit:表示隐式转换,后者表示显式转换,由系统自动完成,在这种转换中不应该出现异常或丢失信息的情况explicit:如果转换时可能出现异常,就需要使用显式转换。4.4运算符的重载4.4.3类型转换运算符重载下列代码重载了从string类型到Complex类的隐式转换运算:publicstaticimplicitoperatorComplex(strings){s=s.Trim().TrimEnd('i');s=s.Trim().TrimEnd('*');string[]digits=s.Split('+','-');Complexc;c=ne
7、wComplex(Convert.ToDouble(digits[0]),Convert.ToDouble(digits[1]));returnc;}重载了这种转换运算符后,我们就可以进行类似下面语句的赋值:Complexc="100+200*i";本讲小结一元运算符重载二元运算符重载类型转换运算符重载
此文档下载收益归作者所有