回答一个运算符重载的问题,帮他写出了代码,记录备份
http://topic.youkuaiyun.com/u/20080728/23/38e0111e-5ce9-4af8-9622-4cf815a58805.html
需求
创建有以下数据成员的类:Time
标识符 类型
Hours Integer
Minutes Integer
Seconds Integer
重载+操作符,用于将Seconds字段中包含的值加1.当Seconds的值等于60时,将Minutes的值加1,然后将Seconds的值置为0.
同样,当Minutes的值为60时,必须执行以下操作:
1.Minutes的值回复为0;
2.Seconds的值回复为0;
3.Hours的值增加1;
当Hours的值等于24时,所有三个字段的值必须回复为0.必须将这三个字段的值作为参数传递,将结果在控制台上输出.
代码
public class Complex { public int _sec = 0; public int _min = 0; public int _hour = 0; public Complex(int sec, int min, int hour) { if (sec >= 60) { _sec = sec % 60; _min += sec / 60; } else { _sec = sec; } _min += min; if (_min >= 60) { _hour += _min / 60; _min = _min % 60; } _hour += hour; } public static Complex operator +(Complex c1, Complex c2) { int intSec = 0; int intMin = 0; int intHour = 0; if (c1._sec + c2._sec >= 60) { intSec = (c1._sec + c2._sec )% 60; intMin += (c1._sec + c2._sec) / 60; } if (c1._min + c2._min + intMin >= 60) { intHour +=( c1._min + c2._min + intMin )/ 60; intMin = (c1._min + c2._min + intMin) % 60; } intHour += c1._hour + c2._hour; return new Complex(intSec, intMin, intHour); // return c3; } }
调用代码如下
Complex cc = new Complex(23, 34, 0); Complex c1 = new Complex(37, 34, 0); Complex c3 = cc + c1; MessageBox.Show(c3._hour.ToString()+"/"+ c3._min.ToString()+"/"+c3._sec.ToString());