定义一个处理日期的类TDate,它有3个私有数据成员:Year,Month,Day和若干个公有成员函数,并实现如下要求:①构造函数重载;②成员函数设置缺省参数;设置日期的成员函数;③定义一个友元函数来打印日期;④可使用不同的构造函数来创建不同的对象。
时间: 2024-03-21 15:40:05 浏览: 92
c++程序设计与面向对象,第三章类和对象
4星 · 用户满意度95%
好的,以下是一个处理日期的类TDate的实现代码:
```cpp
#include <iostream>
using namespace std;
class TDate {
private:
int Year, Month, Day;
public:
TDate(int year=1900, int month=1, int day=1); // 构造函数重载
void SetDate(int year, int month, int day=1); // 成员函数设置缺省参数
friend void PrintDate(TDate date); // 友元函数来打印日期
};
TDate::TDate(int year, int month, int day) {
Year = year;
Month = month;
Day = day;
}
void TDate::SetDate(int year, int month, int day) {
Year = year;
Month = month;
Day = day;
}
void PrintDate(TDate date) {
cout << date.Year << "-" << date.Month << "-" << date.Day << endl;
}
int main() {
TDate date1; // 使用默认参数创建对象
TDate date2(2021, 10, 1); // 使用给定参数创建对象
date1.SetDate(2022, 1); // 只设置年月,日使用默认参数
PrintDate(date1);
PrintDate(date2);
return 0;
}
```
在这个实现中,我们使用了一个默认参数来设置日期的日,因此在调用 `SetDate()` 函数时可以只给年月传递参数,并且让日使用默认值1。同时,我们定义了一个友元函数 `PrintDate()` 来打印日期,它可以访问日期类的私有成员。最后在 `main()` 函数中,我们使用不同的构造函数来创建了两个不同的日期对象,并对它们进行了设置和打印。
阅读全文