现在的位置: 首页 > 综合 > 正文

c++友元函数和友元类

2012年12月20日 ⁄ 综合 ⁄ 共 408字 ⁄ 字号 评论关闭

友元不存在权限的概念,原因是友元函数(友元类)并不属于该类的一部分。

friend关键字将一个函数(类)声明在该类之下,只是表明这个函数(类)的内部可以访问该类的私有成员。

美其名曰:友元函数(友元类)。意思就是你是我的好朋友,可以随便拿。

++++++++++++++

class A
{
	friend class B; // B为A的友元类
	friend int add(A& a, int m, int n) // add为A的友元函数
	{
		return a.m_scale*(m+n);
	}

private:
	int m_scale;
public:
	A()
	{
		m_scale= 2;
	}
};

class B
{
public:
	void fun(A& a)
	{
		a.m_scale=3;
	}
};

// 测试代码
int main()
{
	A a;
	int ret1 = add(a,1,2); // ret1=6

	B b;
	b.fun(a);
	int ret2 = add(a,1,2); // ret2=9
	return 0;
}

  

  

抱歉!评论已关闭.