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的友元类。

  

posted @ 2019-07-19 19:53  心田居士  阅读(443)  评论(0编辑  收藏  举报