Chinaunix

标题: 操作符重载 [打印本页]

作者: DraculaW    时间: 2007-01-10 14:03
标题: 操作符重载

  1. class Date{
  2.   int month;
  3.   int day;
  4.   int year;
  5.   int hour;
  6.   int minute;
  7.   int second;
  8. // and the get set function
  9. }

  10. // the iostream
  11. // format: mm/dd/yyyy hh:mm:ss \n

  12. //mm/dd/yyyy hh:nn:ss \n
  13. ostream &operator<<(ostream& out, const Date& date){
  14.   out << date.getMonth() << "/"
  15.           << date.getDay() << "/"
  16.           << date.getYear() << " "
  17.           << date.getHour() << ":"
  18.           << date.getMinute() << ":"
  19.           << date.getSecond() << " " << endl;
  20. }

  21. istream &operator>>(istream& in, Date& date){
  22.   char temp;
  23.   int month, day, year, hour, minute, second;
  24.   in >> month >> temp
  25.          >> day >> temp
  26.          >> year >> temp
  27.          >> hour >> temp
  28.          >> minute >> temp
  29.          >> second >> temp;

  30.   date.setMonth(month);
  31.   date.setDay(day);
  32.   date.setYear(year);
  33.   date.setHour(hour);
  34.   date.setMinute(minute);
  35.   date.setSecond(second);
  36.   cout << endl;
  37. }

复制代码

这样子为什么不行呢 呵呵 求助

[ 本帖最后由 DraculaW 于 2007-1-10 14:06 编辑 ]
作者: DraculaW    时间: 2007-01-10 14:05


  1. // test code
  2.     stringstream s;
  3.     s << "8/17/1976 1:2:3\n";
  4.    
  5.     Date d;
  6.     s >> d;

  7.     if (d.getMonth() == 8 &&
  8.         d.getDay() == 17 &&
  9.         d.getYear() == 1976 &&
  10.         d.getHour() == 1 &&
  11.         d.getMinute() == 2 &&
  12.         d.getSecond() == 3) {
  13.    
  14.         return true;   
  15.     }
  16.     else {
  17.         return false;
  18.     }
  19.    
复制代码

作者: DraculaW    时间: 2007-01-10 14:53

  1.   in >> month >> temp
  2.          >> day >> temp
  3.          >> year //这里多了一个char
  4.          >> hour >> temp
  5.          >> minute >> temp
  6.          >> second >> temp;
复制代码


呵呵 自己解决了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2