友元

网友投稿 603 2022-11-29

友元

友元

什么是友元类

当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。

友元类能做什么

​​friend​​​ ​​class​​​ ​​B;​​

 

友元类的一个具体例子

在这里,我们引用一个我从网上收集到的例子来说明友元类的作用:假设我们要设计一个模拟电视机和遥控器的程序。大家都之道,遥控机类和电视机类是不相包含 的,而且,遥控器可以操作电视机,但是电视机无法操作遥控器,这就比较符合友元的特性了。即我们把遥控器类说明成电视机类的友元。下面是这个例子的具体代 码:

#include using namespace std;class TV{ public: friend class Tele; TV():on_off(off),volume(20),channel(3),mode(tv){} private: enum{on,off}; enum{tv,av}; enum{minve,maxve=100}; enum{mincl,maxcl=60}; bool on_off; int volume; int channel; int mode;};class Tele{ public: void OnOFF(TV&t){t.on_off=(t.on_off==t.on)?t.off:t.on;} void SetMode(TV&t){t.mode=(t.mode==t.tv)?t.av:t.tv;} bool VolumeUp(TV&t); bool VolumeDown(TV&t); bool ChannelUp(TV&t); bool ChannelDown(TV&t); void show(TV&t)const; };bool Tele::VolumeUp(TV&t){ if (t.volumet.minve) { t.volume--; return true; } else { return false; }}bool Tele::ChannelUp(TV&t){ if (t.channelt.mincl) { t.channel--; return true; } else { return false; }}void Tele::show(TV&t)const{ if (t.on_off==t.on) { cout<<"电视现在"<<(t.on_off==t.on?"开启":"关闭")<

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:第十九课 pluginlib&Nodelet
下一篇:SpringBoot集成redis的示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~