C++ 类的友元

友元是一个不属于类成员的函数,但是它由权访问该类的私有成员。

私有成员对于类外部的所有程序部分而言都是隐藏的,访问它们需要调用一个公共成员函数,但有时也可能会需要创建该规则的一项例外。友元函数是一个不属于类成员的函数,但它可以访问该类的私有成员。换句话说,友元函数被视为好像是该类的一个成员。友元函数可以是常规的独立函数,也可以是其他类的成员。实际上,整个类都可以声明为另一个类的友元。

  为了使一个函数或类成为另一个类的友元,它必须由授予它访问权限的类来说明。类保留了他们的朋友的“名单”,只有名字出现在列表中的外部函数或类才被授予访问权限。通过将关键字friend放置在函数的原型之前,即可将函数声明为友元。以下是其一般格式:

  friend <return type> <function name> (<parameter type list>);

  在Budget类的以下声明中,另一个类的Aux的addBudget函数已声明为友元:

  class Budget

  {

    private:

      double divBudget;

    public :

      friend void Aux::addBudget(double);  //友元

  }

  addBudget(double)函数的声明和定义在Aux类中。

 

如前所述,可以使整个类成为另一个类的友元。Budget类可以通过以下声明使Aux类成为友元:

  friend class Aux;

  但是,这可能并不是一个好主意,因为这将导致Aux的每个成员函数(包括稍后可能添加的函数)都可以访问Budget的私有成员。所以,最好的做法是只声明那些必须有权访问类的私有成员的函数作为友元。

原文链接: https://www.cnblogs.com/ruigelwang/p/12622989.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ 类的友元

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/339452

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午12:05
下一篇 2023年3月2日 上午12:05

相关推荐