C++友元类

友元还可以是类,即一个类可以作另一个类的友元。当一个类作为另一个类的友元时,这就意味着这个类的所有成员函数都是另一个类的 友元函数。所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。

关于友元的注意事项 : 右元关系不可以传递 友元声明的函数形式和数量不受限制 友元关系的单向性

友元只是封装的补充

#include<iostream>
using namespace std;
class Match;
class Time
{
	friend Match;
public:
	Time(int hour,int minute,int second)
	{
		m_iHour=hour;
		m_iMinute=minute;
		m_iSecond=second;
	}
private:
	void printTime()
	{
        cout<<"时:"<<m_iHour<<endl<<"分:"<<m_iMinute<<endl<<"秒:"<<m_iSecond<<endl;
	}
	int m_iHour;
	int m_iMinute;
	int m_iSecond;
};
class Match
{
public:
	Match(int hour,int min,int sec):m_tTimer(hour,min,sec)
	{

	}
	void testTime()
	{
        m_tTimer.printTime();
		cout<<"时:"<<m_tTimer.m_iHour<<endl<<"分:"<<m_tTimer.m_iMinute<<endl<<"秒:"<<m_tTimer.m_iSecond<<endl;
	}
private:
	Time m_tTimer;
};
int main()
{
	Match m(5,21,13);
	m.testTime ();
	system("pause");
	return 0;
}

注:由于编译器不同,友元类有两种写法。1、friend class 类名; 2、friend 类名;

猜你喜欢

转载自blog.csdn.net/qq_40354578/article/details/88724093
今日推荐