定义一个处理日期的类TDate,它有3个私有数据成员:Year,Month,Day和若干个公有成员函数,并实现如下要求:①构造函数重载;②成员函数设置缺省参数;设置日期的成员函数;③定义一个友元函数来打印日期;④可使用不同的构造函数来创建不同的对象。
时间: 2024-03-21 18:39:21 浏览: 60
shell命令实现当前目录下多个文件合并为一个文件的方法
5星 · 资源好评率100%
好的,我可以回答这个问题。以下是 TDate 类的实现:
```cpp
#include <iostream>
#include <cstdio>
using namespace std;
class TDate {
private:
int Year, Month, Day;
public:
TDate(int y = 0, int m = 0, int d = 0) {
Year = y;
Month = m;
Day = d;
}
void SetDate(int y, int m, int d) {
Year = y;
Month = m;
Day = d;
}
void SetDate(int y, int m) {
Year = y;
Month = m;
Day = 1;
}
void SetDate(int y) {
Year = y;
Month = 1;
Day = 1;
}
friend void PrintDate(TDate);
};
void PrintDate(TDate d) {
printf("%04d-%02d-%02d\n", d.Year, d.Month, d.Day);
}
int main() {
TDate d1(2021, 6, 1);
TDate d2(2021, 6);
TDate d3(2021);
PrintDate(d1);
PrintDate(d2);
PrintDate(d3);
return 0;
}
```
这个程序定义了一个 TDate 类,并实现了以下要求:
1. 通过构造函数重载来创建对象。
2. 通过设置缺省参数的方式来设置日期。
3. 通过友元函数来打印日期。
其中,构造函数重载允许我们使用不同的参数来创建对象。例如,我们可以使用 `TDate d1(2021, 6, 1)` 来创建一个日期为 2021 年 6 月 1 日的对象。同时,我们还可以使用 `TDate d2(2021, 6)` 或 `TDate d3(2021)` 来创建一个日期为 2021 年 6 月 1 日或者 2021 年 1 月 1 日的对象。
另外,我们还实现了三个不同参数的 `SetDate` 函数来设置日期。这些函数允许我们使用不同的参数来设置日期的年份、月份和日期。例如,我们可以使用 `SetDate(2021, 6, 1)` 来设置日期为 2021 年 6 月 1 日。同时,我们还可以使用 `SetDate(2021, 6)` 或 `SetDate(2021)` 来设置日期为 2021 年 6 月 1 日或者 2021 年 1 月 1 日。
最后,我们还定义了一个友元函数 `PrintDate` 来打印日期。这个函数允许我们使用 `PrintDate(d1)` 的方式来打印日期为 2021 年 6 月 1 日的对象 d1。
阅读全文