博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++关键字friend-友元
阅读量:6004 次
发布时间:2019-06-20

本文共 949 字,大约阅读时间需要 3 分钟。

友元friend 机制允许一个类授权其他的函数访问它的非公有成员。友元声明以关键字friend 开头,它只能出现在类的声明中。由于友元不是授权友谊的类的成员,所以它们不受其在类体中被声明的public private 和protected 区的影响,这里我们选择把所有友元声明组织起来放在类头之后。

1 class Screen {2     friend istream&3         operator>>( istream&, Screen& );4     friend ostream&5         operator<< ( ostream&, const Screen& );6     public:7     // ... Screen 类的其他部分8 };

一个友元可以是一个普通函数,一个前面定义的类的成员函数也可以是一个完整的类。在使一个类成为友元时友元类的所有成员函数都被给予访问授权友谊的类的非公有成员的权力

友元函数:(普通函数)

class Window {    friend bool is_equal( Screen &, Window & );    // ...};bool is_equal(Screen &, Window &) {  //函数中可以直接使用Window中的非公有成员  //...    }

   (成员函数)

class Window;class Screen {    public:    // copy 是类 Screen 的成员    Screen& copy( Window & );    // ...};class Window {    // copy 是类 Window 的一个友元    friend Screen& Screen::copy( Window & );    // ...};

友元类:(Screen类是Window类的友元类,Screen可以访问Window中的非公有成员)

class Screen;class Window {    friend class Screen;};

转载于:https://www.cnblogs.com/ruanzhao/p/3192353.html

你可能感兴趣的文章
3.8-ansible playbook循环
查看>>
Nginx-rtmp模块实现流媒体play、push、pull功能
查看>>
关于STP根桥选择过程的思考
查看>>
vim随手记
查看>>
zabbix简单入门
查看>>
跨平台脚本乱码对应
查看>>
中文变问号问题
查看>>
正版软件采购网开通以来产生了积极影响
查看>>
2019.01.26-bzoj2090: [Poi2010]Monotonicity 2
查看>>
Java多线程执行示意图
查看>>
cocos2dx基础篇(6)——字体标签CCLabel
查看>>
域控制器无法向DNS注册SRV记录解决办法
查看>>
陕西近1400万手机用户个人信息被泄露
查看>>
文件服务器中病毒
查看>>
我的友情链接
查看>>
Powershell what-if
查看>>
How to configure the windows firewall using group policies
查看>>
btrfs文件系统管理及应用
查看>>
linux网络配置
查看>>
设置密钥登录服务器
查看>>