C++:友元

本文详细解释了C++中的友元概念,包括友元C函数、友元成员函数和友元类,它们如何打破访问权限限制,提高效率,但同时强调了友元的使用需谨慎,因为它影响封装性。

友元打破了访问权限的限制,即让访问权限不生效,多用于一个类的成员变量、方法需要频繁使用时,使用友元方便调用,节约时间,提升效率。

友元也类的隐藏与封装,所以必须慎用。

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类的私有成员、受保护成员,不受权限修饰符的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值