C++友元函数
![da06f4eca96a4e7f536b5b70c4e05b6e.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/652cebd7b587d33f41c873a8dcb63ba1.png)
程序报错了。当然会报错,你以为你是谁,想知道她体重就知道她体重,想知道她年龄就知道她年龄,别做梦了,她是不会告诉你的。
但是,难道就真的不能直接得到她的年龄吗?当然不是,只有你走进妹子的内心,成为妹子的人你才拥有了解一切的权利,所以,现在,来写一个,boyfriend函数。一定要在mm的内心认可你是friend哦。在mm类中声明:
friend void boyfriend ( MM boyfriend );
在类内声明这个友元函数之后,我们在类外实现就行了。在友元函数中的对象就具备了解一切的事物了哦。
![1c4d52cf2349fc4c0a7d6b696e881327.png](https://img-blog.csdnimg.cn/img_convert/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课视频教程》