c++中友元函数

什么是友元函数


首先需要知道,友元函数包括全局友元函数以及成员友元函数。全局友元函数也就是这个函数是一个全局函数,成员友元函数即这个函数为另一个类的成员函数。。

作用


用友元函数可以访问两个或多个类的私有数据。
3.1 类的友元函数在类作用域之外定义,但可以访问类的私有和保护成员
3.2 尽管类定义中有友元函数原型,友元函数仍然不是成员函数
3.3 由于友元函数不是任何类的成员函数,所以不能用句柄(对象)加点操作符来调用
3.4 public, private, protected成员访问符与友员关系的声明无关,因此友元关系声明可在类定义的任何位置,习惯上在类定义的开始位置
3.5 友元关系是指定的,不是获取的,如果让类B成为类A的友元类,类A必须显式声明类B为自己的友元类
3.6 友元关系不满足对称性和传递性
3.7 如果一个友元函数想与两个或更多类成为友元关系,在每个类中都必须声明为友元函数

具体代码


#include <iostream>

using namespace std;

class stu
{

friend void printfxy(stu &a);

private:
        int xiaoshi;
        int fenzhong;


public:
        stu()
        {
            xiaoshi = 6;
            fenzhong = 30;
        }
};


void printfxy(stu &a)
{
    cout << a.xiaoshi << ":" << a.fenzhong <<endl;
}



int main()
{

    stu st1;
    printfxy(st1);
    return 0;
}

分析:这个代码体现的是全局友元函数。注意,当一个类的对象作为参数传递给一个函数时,要用引用,格式是:类名+&对象名

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值