题目描述:
将例3.13程序中的display函数放在类外,作为普通函数,然后分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。main函数如下:
int main(){
Time t1(22,25,50);
Date d1(5,11,2022);
display(t1,d1);
return 0;
}
输入:
参考main函数中的数据
输出:
2022/5/11 22:25:50
示例:
input
Time t1(22,25,50); Date d1(5,11,2022);
output
2022/5/11 22:25:50
代码:
#include<iostream>
using namespace std;
class Date;
class Time
{
public:
Time(int, int, int);
friend void display(Time &t,Date &d);
private:
int hour;
int minute;
int sec;
};
class Date
{
public:
Date(int, int, int);
friend void display(Time &t,Date &d);
private:
int month;
int day;
int year;
};
Time::Time(int h, int m, int s)
{
hour = h;
minute = m;
sec = s;
}
Date::Date(int m, int d, int y)
{
month = m;
day = d;
year = y;
}
void display(Time &t, Date &d)
{
cout << d.year << "/" << d.month << "/" << d.day << " ";
cout << t.hour << ":" << t.minute << ":" << t.sec << endl;
}
int main()
{
Time t1(22, 25, 50);
Date d1(5, 11, 2022);
display(t1, d1);
return 0;
}