对于友元函数的使用,要注意在定义一个类的友元函数时一定要将包含该成员函数的类进行声明,然后才能定义友元函数。其次要注意友元函数的写法。
1.将display定义为Time的函数,且为Date的友元函数
#include<iostream>
using namespace std;
class Date;
class Time
{
public:
Time(int ,int ,int );
void display(Date &);
private:
int hour;
int minute;
int sec;
};
class Date
{
public:
Date(int ,int ,int );
friend void Time::display(Date &);
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 Time::display(Date &p)
{
cout<<hour<<':'<<minute<<':'<<sec<<endl;
cout<<p.month<<'/'<<p.day<<'/'<<p.year<<endl;
}
int main()
{
Time t(10,13,56);
Date d(12,25,2004);
t.display(d);
return 0;
}
2.将display定义为类外的普通函数,且为Time、Date类的友元函数