任务描述 设计一个日期( my_date )类、时钟( my_clock )类和时间类( my_time ),编写 display 函数用于显示日期和时钟。要求将 my_time 类声明为 my_date 类和 my_clock 类的友元类,通过 my_time 类中的 display 函数引用 my_date 类对象和 my_clock 类的私有数据,输出年、月、日和时、分、秒 my_time 类描述 静态成员函数 display(const my_date &, const my_clock &);: 输出日期和时间的函数。输出格式如下:YYYY/MM/DD hh:mm:ss。 my_clock 类描述 成员变量 hour: 一个表示当前小时的整型变量。 成员变量 minute: 一个表示当前分钟的整型变量。 成员变量 second: 一个表示当前秒钟的整型变量。 成员函数 my_clock(int, int, int);: 构造函数。初始化成员变量。 my_date 类描述 成员变量 year: 一个表示当前年份的整型变量。 成员变量 month: 一个表示当前月份的整型变量。 成员变量 day: 一个表示当前天数的整型变量。 成员函数 my_date(int, int, int);: 构造函数。初始化成员变量。
时间: 2024-02-06 17:09:48 浏览: 158
以下是代码实现:
```
#include <iostream>
#include <iomanip>
using namespace std;
class my_clock;
class my_date {
private:
int year;
int month;
int day;
public:
my_date(int y, int m, int d) : year(y), month(m), day(d) {}
friend class my_time;
friend void my_time::display(const my_date&, const my_clock&);
};
class my_clock {
private:
int hour;
int minute;
int second;
public:
my_clock(int h, int m, int s) : hour(h), minute(m), second(s) {}
friend class my_time;
friend void my_time::display(const my_date&, const my_clock&);
};
class my_time {
public:
static void display(const my_date& date, const my_clock& clock) {
cout << setfill('0') << setw(4) << date.year << "/"
<< setw(2) << date.month << "/"
<< setw(2) << date.day << " "
<< setw(2) << clock.hour << ":"
<< setw(2) << clock.minute << ":"
<< setw(2) << clock.second << endl;
}
};
int main() {
my_date date(2021, 11, 11);
my_clock clock(11, 11, 11);
my_time::display(date, clock);
return 0;
}
```
在上面的代码中,我们定义了三个类:`my_date`、`my_clock` 和 `my_time`。其中,`my_date` 和 `my_clock` 分别代表日期和时钟,它们有各自的成员变量和构造函数。`my_time` 类是一个静态类,其中包含一个静态成员函数 `display`,用于输出日期和时间。
在 `my_date` 和 `my_clock` 类中,我们使用 `friend` 关键字将 `my_time` 类声明为友元类,这样在 `my_time` 类中就能够访问 `my_date` 和 `my_clock` 的私有成员变量了。
在 `my_time` 类的 `display` 函数中,我们使用了 `setfill` 和 `setw` 函数来控制输出格式,确保年、月、日、时、分、秒都是两位数。然后,我们将 `my_date` 和 `my_clock` 对象作为参数传递给 `display` 函数,输出日期和时间。
在 `main` 函数中,我们创建了一个 `my_date` 对象和一个 `my_clock` 对象,然后调用 `my_time::display` 静态函数输出它们的日期和时间。
阅读全文