3. 建立一个日期类和时间类,要求一次输出其中的日期和时间。(要求将日期类声明为时间类的友元类,通过日期类中输出函数引用时间类对象的私有数据。)
时间: 2024-03-18 07:38:48 浏览: 15
好的,我理解了你的问题。下面是一个实现的示例代码,其中日期类被声明为时间类的友元类,通过日期类中的输出函数引用时间类对象的私有数据来实现一次性输出日期和时间。
```c++
#include <iostream>
using namespace std;
class Time; // 前置声明
class Date {
private:
int year;
int month;
int day;
public:
Date(int y, int m, int d) : year(y), month(m), day(d) {}
void display(const Time& time); // 声明时间类对象为形参
};
class Time {
private:
int hour;
int minute;
int second;
public:
Time(int h, int m, int s) : hour(h), minute(m), second(s) {}
friend class Date; // 声明日期类为友元类
};
void Date::display(const Time& time) {
cout << "日期:" << year << "-" << month << "-" << day << endl;
cout << "时间:" << time.hour << ":" << time.minute << ":" << time.second << endl;
}
int main() {
Date date(2022, 9, 12);
Time time(10, 30, 20);
date.display(time); // 传入时间类对象
return 0;
}
```
在这个示例代码中,我们首先定义了时间类和日期类。时间类中定义了时、分、秒三个私有成员变量,并提供了一个构造函数。日期类中定义了年、月、日三个私有成员变量,并提供了一个构造函数和一个display()函数。在日期类中,我们将时间类声明为友元类,并在display()函数中引用了时间类对象的私有数据,以实现一次性输出日期和时间。
在主函数中,我们创建了日期类对象和时间类对象,并将时间类对象作为实参传递给日期类的display()函数,以实现一次性输出日期和时间。
输出结果为:
```
日期:2022-9-12
时间:10:30:20
```
希望这个示例代码能够帮助到你。