友元函数----
有一个日期(Date)类的对象和一个时间(Time)类的对象,均已指定了内容,要求一次输出其中的日期和时间。
#include<iostream>
using namespace std;
class Date; //对Date类的提前引用声明
class Time //声明Time类
{
public:
Time(int h,int m,int s):hour(h),minute(m),sec(s){}; //定义构造函数
void display(Date &); //display是成员函数,形参是Date类对象的引用
private:
int hour;
int minute;
int sec;
};
class Date //声明Date类
{
public:
Date(int m,int d,int y):month(m),day(d),year(y){}; //定义构造函数
friend void Time::display(Date &) ; //声明Time中的display函数为本类的友元成员函数
private:
int month;
int day;
int year;
};
void Time::display(Date &d)
{
cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl; //引用Date类对象中的私有数据
cout<<hour<<":"<<minute<<":"<<sec<<endl; //引用本类对象中的私有数据
}
int main()
{
Time t1(16,44,13); //定义Time类对象t1
Date d1(3,14,2021); //定义Date类对象t2
t1.display(d1); //调用t1中的display函数,实参是Date类对象d1
return 0;
}