友元函数

1.  概念

类的友元函数是被特别授予了访问类的数据成员权限的普通函数。友元函数具有的权限与成员函数相同,在友元函数的定义中可以直接访问类的所有数据成员(包括公有成员函数、公有成员变量、私有成员函数、私有成员变量),甚至改变公有(及私有)成员变量的值。然而,友元函数并不是成员函数,它本质上仍是一个普通函数。

 

2.  声明、定义和调用友元函数

声明:必须在类定义中列出友元函数的声明,函数声明前必须附加关键字friend。特别注意的是友元函数的声明即可放在private小节也可放在public小节,但无论如何友元函数都是一个公共函数,惯例上是在public小节中声明。

定义和调用:由于友元函数并不是类的成员函数,故友元函数的定义和调用方式与普通函数相同。定义友元函数时,不使用类型限定符,调用友元函数时,不使用圆点操作符。

语法:

class Aclas
{
public:
     friend  bool friendFunc1(parameters...);
     friend  int friendFunc2(parameters...);
            ...
     pubic_member_function_declarations.

private:
     private_member_function_declarations;
};


int main()
{
    bool  bRet = friendFunc1(parameter...);
    int  nRet = friendFunc2(parameter...);
            ...
     return 0;
}

bool frendFunc1(parameter...)
{
     definition_statementes
            ....
     return ture;
}

int friendFunc2(parameter...)
{
     definition_statementes
            ....
     return 0;
}


3. 使用友元函数的简单规则

一个函数到底是设计成类的成员函数还是友元函数呢?有两个简单的规则:

a. 如果函数执行的任务只涉及一个类的对象,那就设计为成员函数;

b. 如果函数执行的任务涉及两个及以上对象,则使用友元函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值