码迷,mamicode.com
首页 > 编程语言 > 详细

C++开发系列-友元函数 友元类

时间:2018-06-01 13:37:00      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:src   ++   code   .com   cpp   技术   函数   设计   c++开发   

友元函数

默认一个类的私有属性只能在该类的内部可以直接访问。友元函数申明在内的内部,实现在类的外部可以直接访问类的私有属性。

class A1
{
public:
    A1()
    {
        a1 = 100;
        a2 = 200;
    }
    int getA1()
    {
        return this->a1;
    }
    //声明一个友元函数
    friend void setA1(A1 *p, int a1); //这个函数是这个类的好朋友
    
protected:
private:
    int a1;
    int a2;
};

void setA1(A1 *p, int a1)
{
    p->a1 = a1;
}
void main()
{
    A1 mya1;
    cout<<mya1.getA1()<<endl; 
    setA1(&mya1, 300); //通过友元函数 修改A类的私有属性
    cout<<mya1.getA1()<<endl;

    system("pause");
}

补充:

  • 友元函数声明语句位置与private、public无关。
  • 友元函数通常有个参数为该对象的参数,通过对象参数访问私有成员属性数据

友元类

  • 若B类是A类的友员类,则B类的所有成员函数都是A类的友员函数
  • 友员类通常设计为一种对数据操作或类之间传递消息的辅助类

技术分享图片

C++开发系列-友元函数 友元类

标签:src   ++   code   .com   cpp   技术   函数   设计   c++开发   

原文地址:https://www.cnblogs.com/CoderHong/p/9120781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!