友元

来源:互联网 发布:分水岭分割算法 编辑:程序博客网 时间:2024/04/27 17:37

一、友元函数

函数在某一类中声明为friend,就说明了它不是该类的成员函数,而是独立的一般的外界函数,但它可以访问该类的所有对象的私有成员。

友元函数有类形参,以传送私有参数。

class A

{ public:

  friend void func(A &);//成为普通函数,但可访问A类中的私有

};

void func(A &)

{//...

}

二、友元成员

另一个类的成员函数也可作为某个类的友元,此时在声明时要加上成员函数所在的类名。

好处:为了2个类相互合作,协调工作。

class B;

class A

{ public:

  void toB(B *);//因为在B类中有友元,可调用B的私有

  friend void B::toA(A *);

};

class B

{ public:

  void toA(A *);//因为在A类中有友元,可调用A的私有

  friend void A::toB(B *);

};

简单一点例子:

class B;

class A

{ public:

  void toB(B *);//因为在B类中有友元,可调用B的私有成员进行运算等

};

class B

{ public:

  friend void A::toB(B *);

};

三、友元类

A类是B类的友元,A类中的所有函数都可访问B类中的私有成员。

方法:在B类中加入friend class A;  可在公有段加也可在私有段加。

原创粉丝点击