C++友元

Posted liuzhenbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++友元相关的知识,希望对你有一定的参考价值。

  C++提供友元机制,允许一个类将其非公有成员的访问权授予指定的函数或类。友元声明以关键字friend开始,它只能出现在类的内部。

  友元可以是普通的非成员函数,或是已定义的其他类的成员函数,或整个类。所以有友元函数和友元类的叫法。

(一)将非成员函数声明为友元函数

  private:

    friend double distance();//友元函数

(二)友元成员函数

  class A

  public:

    void  setb(B& r);

  ;

  class B

  private:

    friend void A::setb(B& r);

  

(三)友元类

  可以将一个类B声明为另一个类A的友元,这时B类就是类A的友元类。友元类B中的所有成员函数都是A类的友元函数,可以访问A类中的所有成员。

  关于友元类的如下说明:

  (1)友元的关系是单向的不是双向的,B是A的友元,不代表A是B的友元。

  (2)友元关系不能传递或继承,如果B是A的友元类,C是B的友元类,不代表C是A的友元类。

  

以上是关于C++友元的主要内容,如果未能解决你的问题,请参考以下文章

类和对象之友元

C++ ----类与对象(下)

C++类和对象

C++ Primer Plus学习:第十五章

C++类和对象下

为什么要使用友元,友元类