友元类型
- 友元函数
- 友元类
友元函数
- 全局函数生命为友元
-
- friend 返回值类型 函数名(参数表);
- 将其他类的成员函数声明为友元
- friend 返回值类型 其他类的类名::成员函数名(参数表)
通过友元函数可以访问所在类的私有、受保护的数据。
//.h
class A
{
friend void testFriendFunc(A a);
public:
A();
~A();
private:
int i;
int j;
}
//.cpp
//构造
A():i(20),j(30) {}
//析构
~A(){}
void testFriendFunc(A a)
{
a.i = 200;
a.j = 300;
}
友元类
- friend class 类名;
友元类的成员函数可以访问该类的所有数据。
//.h
class B;
class A
{
friend class B;
public:
A();
~A();
private:
int i;
int j;
}
//.h
class A;
class B
{
public:
B();
~B();
void modifyA(A a);
}
//.cpp
B(){}
~B{}
void B::modifyA(A a)
{
a.i = 100;
a.j = 200;
}