c++设计一个日期类Date,重载运算符“<<”使之能够使用cout将日期类对象以日期的格式输出。在Date类中验证日期的合法性 cout <<“当前日期已设置为” << a < endl;
时间: 2023-08-20 13:30:30 浏览: 127
好的,我可以帮你设计一个日期类Date,并重载运算符“<<”:
```c++
#include <iostream>
using namespace std;
class Date {
private:
int year, month, day;
public:
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
friend ostream& operator<<(ostream& os, const Date& date) {
os << date.year << "-" << date.month << "-" << date.day;
return os;
}
bool isValid() {
if (year < 0 || month < 1 || month > 12 || day < 1 || day > 31) {
return false;
}
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
if (day > 29) {
return false;
}
} else {
if (day > 28) {
return false;
}
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
if (day > 30) {
return false;
}
}
return true;
}
};
int main() {
Date a(2021, 8, 25);
if (a.isValid()) {
cout << "当前日期已设置为" << a << endl;
} else {
cout << "日期不合法" << endl;
}
return 0;
}
```
在上面的代码中,我们设计了一个日期类Date,其中包含年、月、日三个私有数据成员,还有一个构造函数、一个友元函数和一个判断日期是否合法的成员函数isValid()。在重载运算符“<<”中,我们使用cout将日期类对象以日期的格式输出。在主函数中,我们创建了一个日期对象a,然后调用isValid()函数判断日期是否合法,如果合法就使用cout将日期输出。
阅读全文