C++ 友元

 友元 == 有缘。

没错~有缘之后可以做很多事情,比如去你家蹭吃蹭喝..

C++中 类的友元(包括友元函数,友元类),可以访问该类的私有和继承变量。虽然破坏了封装性,却也为编程提供了便利。是一种共享数据的方式之一(除此之外还有,静态数据,全局变量)。

下面描述友元应用的场景:现在有两个类A,B。B需要获取A中的private数据,有两种方式,通过接口获取数据,或者B(或其成员函数)成为A的友元直接访问数据。假设,调用数据非常频繁,这时使用友元就可以提高效率但是,当A中的数据结构发生改变时,B的函数也要发生相应改变。接口的好处~封装的威力XD

 

友元函数:

在要成为其友元的类中声明该函数,并在函数前增加friend关键字即可。

#include <iostream>
using namespace std;

class a
{
public:
     friend void output(a& test);
     a(int i){count = i;};
private:
     int count;
};

void output(a& test)
{
    cout<<test.count<<endl;//private也照样访问
}

int main()
{
    a test(1);
    output(test);
    getchar();
    return 0;
}

友元类:

与友元函数一样,在组合类的时候,在类前加上friend关键词。这样,整个类的成员函数都是他的友元函数 - -,一大家子····

此处代码省略。

 

最后

友元关系不是双向的,B是A的友元,表示B能访问A的private和protect。但是反过来就不成立了。

转载于:https://www.cnblogs.com/CAION/archive/2012/12/29/2839424.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值