C++初学者的问题!

[复制链接]
查看11 | 回复1 | 2008-10-26 12:38:45 | 显示全部楼层 |阅读模式
#include
#include
#include
#include
using namespace std;
class Date {

int year, month, day;
public:

Date(int y=2000, int m=1, int d=1);//设置默认参数

Date(const string& s);
//重载

bool isLeapYear()const {

return (year%4==0 && year%100!=0) || (year%400==0); }



friend ostream& operator<<(ostream& o, const Date& d);

};


Date::Date(const string& s) {

year = atoi(s.substr(0,4).c_str());

month = atoi(s.substr(5,2).c_str());

day = atoi(s.substr(8,2).c_str());

}


Date::Date(int y, int m, int d) { year=y, month=m, day=d; }
ostream& operator<<(ostream& o, const Date& d) {

o<<setfill('0')<<setw(4)<<d.year<<"-"<<setw(2)<<d.month<<"-";

return o<<setw(2)<<d.day<<"\n"<<setfill(' ');

}


int main() {

Date c("2005-12-28");


Date d(2003,12,6);


Date e(2002);
//默认两个参数


Date f(2002,12);
//默认一个参数


Date g;
//默认三个参数

if(c.isLeapYear());

if(d.isLeapYear());

if(e.isLeapYear());

if(f.isLeapYear());

if(g.isLeapYear());

cout<<c<<d<<e<<f<<g;

getch();

return 0;
}
上面的程序判断不到是否闰年. 为什么会这样? 该怎样改?

回复

使用道具 举报

千问 | 2008-10-26 12:38:45 | 显示全部楼层
你只用if判断了,但是确没有相应的输出信息,当然看不到了,可以类似下面这样改:if(c.isLeapYear())cout << "1 yes, it is." << endl;if(d.isLeapYear())cout << "2 yes, it is." << endl;if(e.isLeapYear())cout << "3 yes, it is." << endl; if(f.isLeapYear())cout << "4 yes, it is." << endl; if(g.isLeapYear());cout << "5 yes, it is." << endl;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行