C++ 数据共享与保护(2)

C++ 数据共享与保护

类的友元

友元是C++提供的一种破坏数据封装和数据隐藏的机制。

友元函数

友元函数是在类的声明中由friend 修饰的非本类成员函数,在友元函数中可以通过对象访问它们的成员。

#include 
using namespace std;
class B {
public: int j = 11;
};
class A {
	int i=10;
		friend void fun(A & a, B & a1)
	{
		cout << a.i + a1.j << endl;//此处出现了a1.j
		//则B类的定义必须出现在A类的前面
	}
};
int main() {
	A a;
	B a1;
	fun(a,a1);//友元函数不属于类,直接调用;
	return 0;
}

友元类

若A类为B类的友元类,则A类的所有成员函数都是B类的友元函数,都能访问B类的任何成员
class A{
friend B;B为A的友元
}

class A
{   friend class B;
    public:
      void Display()
       {cout<

说明:
(1)友元函数的声明可以出现在类的任何地方,即友元的声明不受成员访问控制符的限制。
(2)友元关系是单向的。
(3)友元关系是不能传递的。
(4)友元关系不能被继承。
(5)实际工作中,除非有必要,一般不把整个类声明为友元类。

你可能感兴趣的:(C++)