#include <iostream>
using namespace std;
//class 中使用了void display(Date&);需要对date提前引用声明
class Date;
//定义time类
class Time
{
public:
Time(int, int, int);
//成员函数,形参是date的引用
void display(Date&);
private:
int hour;
int minute;
int sec;
};
//声明date类
class Date
{
public:
//Time类声明为Date类的友元类
friend Time;
Date(int, int, int);
private:
int month;
int day;
int year;
};
//time的有参构造函数
Time::Time(int hour, int minute, int sec)
{
this->hour = hour;
this->minute = minute;
this->sec = sec;
}
//time的display方法
//按格式输出年月日时分秒
void Time::display(Date& d)
{
//Time类为Date类的友元类,能够访问date的私有变量
cout << d.month << "/" << d.day << "/" << d.year << endl;
//time类自己的私有变量可以直接在time类中访问
cout << hour << ":" << minute << ":" << sec << endl;
}
//date的有参构造函数
Date::Date(int month, int day, int year)
{
this->month = month;
this->day = day;
this->year = year;
}
//主函数
int main()
{
//创建time对象t1
Time t1(10, 13, 56);
//创建date对象d1
Date d1(12, 25, 2004);
//调用time的display方法输出
t1.display(d1);
return 0;
}