友元函数是可以直接访问类的私有或被保护的成员的非成员函数
有两种方式一是定义在类内作为成员函数,另一种是定义在类外成为全局函数
定义友元函数的关键字是friend
全局函数:
#include<iostream>
using namespace std;
class Time
{
friend void printTime(Time &t);
public:
Time(int hour,int minute,int second)
{
m_iHour=hour;
m_iMinute=minute;
m_iSecond=second;
}
private:
int m_iHour;
int m_iMinute;
int m_iSecond;
};
void printTime(Time &t)
{
cout<<t.m_iHour<<":"<<t.m_iMinute<<":"<<t.m_iSecond<<endl;
}
int main()
{
Time t(5,21,13);
printTime(t);
system("pause");
return 0;
}
class Match
{
public:
void printTime(Time &t)
{
cout<<t.m_iHour<<":"<<t.m_iMinute<<":"<<t.m_iSecond<<endl;
}
};
class Time
{
friend void Match::printTime(Time &t);
public:
Time(int hour,int minute,int second)
{
m_iHour=hour;
m_iMinute=minute;
m_iSecond=second;
}
void printTime(Time &t)
{
cout<<t.m_iHour<<":"<<t.m_iMinute<<":"<<t.m_iSecond<<endl;
}
private:
int m_iHour;
int m_iMinute;
int m_iSecond;
};
这个需要放在两个.cpp内通过.h来实现Match和Time互相访问~