物联网
您现在所在的位置:首页>企业动态>物联网

C++中友元函数和友元类的作用是什么?

编辑:学到牛牛IT培训    发布日期: 2023-03-30 10:07:41  

在C++中,有时候需要访问类的私有成员,但是这些成员只能在类内部访问,对于类外部的函数和类来说是无法访问的。在这种情况下,可以使用友元函数和友元类来解决这个问题。


1680051852647.jpg


友元函数是指在类定义内部声明的非成员函数,该函数可以访问类的私有成员和保护成员。为了使函数成为类的友元函数,需要在类的定义内部使用friend关键字进行声明。这个友元函数并不属于类的成员函数,但它能够访问该类的所有私有成员和保护成员。友元函数可以是全局函数,也可以是其他类的成员函数。


例如,假设有一个类A,其中有一个私有变量x和一个友元函数f。下面是如何定义一个友元函数:


class A{

private:

    int x;

    friend void f(A&);

};

在这个例子中,函数f被声明为A的友元函数。这意味着函数f可以访问A的私有成员x。


友元类是指一个类能够访问另一个类的私有成员和保护成员。为了使类成为另一个类的友元类,需要在该类的定义中使用friend关键字声明。这个友元类能够访问另一个类的私有成员和保护成员,但是另一个类并不能访问该友元类的私有成员和保护成员。


例如,假设有两个类A和B,其中B是A的友元类。下面是如何定义一个友元类:


class A{

private:

    int x;

    friend class B;

};


class B{

public:

    void function(A& a){

        a.x = 5;

    }

};

在这个例子中,类B被声明为A的友元类。这意味着类B可以访问A的私有成员x。


需要注意的是,友元函数和友元类破坏了类的封装性。因此,应该谨慎使用友元函数和友元类,只在必要的时候使用。


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    扫一扫,免费咨询

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    微信公众号

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

学一流技术,找高薪工作

物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问