6.11 日期类和时间类-友元类用法
##友元类用法
时间类的成员函数Display需要用到日期类的私有数据成员输出日期,方法2是在日期类中将时间类声明为友元类,这样时间类的所有成员函数都是日期类的友元函数,当然时间类的Display函数也是日期类的友元函数。
后置代码
int main()
{
Time t1(10,13,56);//定义时间类对象
Date d1(12,25,2012);//定义日期类对象
t1.Display(d1);//调用友元类的成员函数
return 0;
}
##解题思路:
要注意先后顺序 本题是在时间类中引用了日期类
因此要把日期类放在前面并声明友元
在时间类中添加无返回值的void函数
题解如下
#include <iostream>
using namespace std;
class Date
{
public:
int year;
int month;
int day;
Date(int a=0,int b=0,int c=0)
{
year=c;
month=a;
day=b;
}
friend class Time;
};
class Time
{
private:
int hour;
int minute;
int second;
public:
Time(int a=0,int b=0,int c=0)
{
hour=a;
minute=b;
second=c;
}
void Display(Date &d)
{
cout<<d.year<<"/"<<d.month<<"/"<<d.day<<endl;
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
};