C++之友元函数

1.友元函数的一般形式:

  friend <返回类型> <函数名>(<参数列表>); 

class CObject
{
public:
    friend void func();  //友元函数
  friend class CSthing;
protected: int b;
provate:
   int a; };
class CSthing
{
public:
  void test()
  {
    
printf("%d\n",p->a);
  }
}
void func( CObject *p) 
{
  printf("%d\n",p->a);
}

2.注意点:

  1. 类中通过使用关键字friend 来修饰友元函数,但该函数并不是任何类的成员函数,其声明可以放在类的私有部分,也可放在共有部分。友元函数的定义在类体外实现,不需要加类限定
  2. 一个类中的成员函数可以是另外一个类的友元函数,而且一个函数可以是多个类友元函数。
  3. 友元函数可以访问类中的私有成员和其他数据,但是访问不可直接使用数据成员,需要通过对对象进行引用
  4. 友元函数在调用上同一般函数一样,不必通过对对象进行引用。
  5. 可以把类声明为友元,但是“朋友”只能是单向的,被声明为朋友的类csthing,可以不受protected,protected的限制访问CObject各成员;

 

转载于:https://www.cnblogs.com/weiyouqing/p/9648757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值