友元打破了访问权限的限制,即让访问权限不生效,多用于一个类的成员变量、方法需要频繁使用时,使用友元方便调用,节约时间,提升效率。
友元也类的隐藏与封装,所以必须慎用。
1、类的友元C函数;
2、类的友元成员函数;
3、类的友元类。
1、类的友元C函数
用friend修饰C函数声明在类中,即为类的友元C函数。
class Stu{
friend void func();
private:
int a;
};
void func()
{
Stu s;
s.a = 3;
}
C函数func可以访问Stu类中的成员,不受访问修饰符的限制。
2、类的友元成员函数
用friend修饰另一个类的成员函数在类中声明,即为类的友元成员函数。
class Stu{
friend void A::func();
private:
int a;
};
class A{
public:
void func();
};
void A::func()
{
Stu s;
s.a = 10;
}
3、类的友元类
用friend将另一个类修饰在类中声明,即为类的友元类。
class Stu{
friend class A;
private:
int a;
};
class A{
private:
void func();
};
void A::func()
{
Stu s;
s.a = 10;
}
A类中的所以成员函数都可以访问Stu类的私有成员、受保护成员,不受权限修饰符的影响。
本文详细解释了C++中的友元概念,包括友元C函数、友元成员函数和友元类,它们如何打破访问权限限制,提高效率,但同时强调了友元的使用需谨慎,因为它影响封装性。

382

被折叠的 条评论
为什么被折叠?



