友元函数可以访问私有成员吗_抓住要点,轻松学习C++,C++快速入门教程之C++友元函数...

C++友元函数

da06f4eca96a4e7f536b5b70c4e05b6e.png

地球上一种很神奇的生物——女人,说起。众所周知,女生不愿意让别人知道的两个秘密,一个是年龄,另一个就是体重了(为什么女生不愿意让别人知道她们的年龄和体重,这很重要吗?)。现在,我们根据这个特性,来创建一个MM类。由于,女生不想要让别人知道她们的年龄和体重,也就意味着,这两个变量是private变量,这样,外界就不能随意访问了。现在,开始创建这个类:

class MM{private:int age;int weight;public:MM(int age, int weight){this->age = age;this->weight = weight;}int getAge(void){return this->age;}int getWeight(void){return this->weight;}};

现在,我们已经有了MM这个类了。既然小编这种写程序的码畜没有对象,那么就基于这个类,来创建一个MM对象。

MM  mm;

现在,已经有一个对象了,叫mm。
比如,我们现在其他人想要知道mm的年龄,体重,看一下,她同意吗?

652cebd7b587d33f41c873a8dcb63ba1.png

程序报错了。当然会报错,你以为你是谁,想知道她体重就知道她体重,想知道她年龄就知道她年龄,别做梦了,她是不会告诉你的。
但是,难道就真的不能直接得到她的年龄吗?当然不是,只有你走进妹子的内心,成为妹子的人你才拥有了解一切的权利,所以,现在,来写一个,boyfriend函数。一定要在mm的内心认可你是friend哦。在mm类中声明:

friend void boyfriend (  MM   boyfriend );

在类内声明这个友元函数之后,我们在类外实现就行了。在友元函数中的对象就具备了解一切的事物了哦。

1c4d52cf2349fc4c0a7d6b696e881327.png

完整代码如下:

#include using namespace std;class MM{private:int age;int weight;public:MM(int age, int weight){this->age = age;this->weight = weight;}int getAge(void){return this->age;}int getWeight(void){return this->weight;}friend void boyfriend(MM boyfriend);};void boyfriend(MM boyfriend){cout << boyfriend.age << endl;cout << boyfriend.weight << endl;MM object(100,200);cout << object.age << endl;cout << object.weight << endl;}int main(){MM mm(100, 99);boyfriend(mm); system("pause");return 0;}

这篇文章,我觉得已经写的比较的通俗易懂了,希望看完这篇文章的小伙伴们,各位大佬们,能顺手点个赞,表示支持。谢谢!相关的C++视频教程,大家可以关注下小编的专栏:《C++45课视频教程》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值