将类的成员函数声明为友元函数
# include<iostream>
using namespace std;
class Data;/ /类的提前声明
class Time
{
public:
Time(int h,int m,int s):hour(h),minute(m),sec(s){};//参数的初始化表
void display(Data &);
private:
int hour;
int minute;
int sec;
};
class Data
{
public:
Data(int m,int d,int y=1991);
friend void Time::display(Data &);//声明Time类的display函数为本类的友元成员成员函数,即赋予Time类的display函数具有输出Data类私有成员的资格
private:
int year;
int month;
int day;
};
Data::Data(int m,int d,int y ) //带形参的构造函数
{
month=m;
day=d;
year=y;
};
void Time::display(Data &t)
{
cout<<t.year<<","<<t.month<<","<<t.day<<";"<<endl;
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
int main()
{
Time t1(12,23,34);
Data T1(3,15);
t1.display(T1);
return 0;
}
将普通函数声明为友元函数
# include<iostream>
using namespace std;
class Time
{
public:
Time(int h,int m,int s):hour(h),minute(m),sec(s){};
friend void display(Time &);
private:
int hour;
int minute;
int sec;
};
void display(Time &t)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
int main()
{
Time t1(12,23,34);
display(t1);
return 0;
}