C++中的友元关系浅析

作者:小菜 更新时间:2025-03-16 点击数:
简介:在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全

【菜科解读】

在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的 后门 友元关系;

C++中提供三种友元关系的实现方式,友元函数、有缘成员函数、友元类。

友元函数:既将一个普通的函数在一个类中说明为一个friend属性;其定义(大多数会访问该类的成员)应在类后;

友元成员函数:既然是成员函数,那么肯定这个函数属于某个类,对了就是因为这个函数是另外一个类的成员函数,有时候因为我们想用一个类通过一个接口去访问另外一个类的信息,然而这个信息只能是被它授权的类才能访问;那么也需要用friend去实现;这个概念只是在声明的时候少有变化;

友元类:友元类声明会将整个类说明成为另一个类的友元关系;和之前两种的区别是集体和个人的区别;友元类的所有成员函数都可以是另一个类的友元函数;

值得注意的是友元关系是单向的,有点像我们恋爱中出现的单相思 O( _ )O,单向关系就是说如果A被说明称B的友元关系,那么只能说A是B的友元,并不代表B是A的友元;其次在多数情况下友元关系的函数都会访问它被说明中类的成员,这时候应该将函数定义在类的后面;

下面给一个简单的例程代码;

1 #include 2 3 using namespace std;4 5 class B;6 7 class A{8 private:9 int x;10 public:11 A();12 void display(B &);13 };14 15 class C;16 17 class B{18 private:19 int y;20 int z;21 public:22 B();23 B(int, int);24 friend void A::display(B &);//友元成员函数25 friend void display(B &);//友元函数26 friend class C;//友元类27 };28 29 class C{30 private:31 int sum;32 void calc(B &);33 public:34 C();35 void display(B &);36 };37 38 //必须在友元关系的类后进行定义39 void display(B &v)//友元成员函数40 {41 cout x = 0;47 }48 49 void A::display(B &v)//友元成员函数50 {51 this->x = v.y + v.z;52 cout x y = 0;58 this->z = 0;59 }60 61 B::B(int y, int z)62 {63 this->y = y;64 this->z = z;65 }66 67 C::C()68 {69 sum = 0;70 }71 72 void C::display(B &v)73 {74 this->calc(v);75 cout C++,中的,友元,关系,浅析,在,封装,中,C++,类,

暗物质的作用是什么,解决大爆炸理论中的不自洽性

相信对于天文学比较好奇的朋友们都知道暗物质,暗物质是什么呢?简单来说就是宇宙中人们看不见的一种物质,也有人说是科学家们设想出来为了“填坑”的,因为暗物质捕鱼电磁产生作用,那么暗物质的作用是什么呢?一、暗物质是什么要想了解暗物质的作用的话,首先还是要来了解一下暗物质是什么,要了解暗物质,需要先从宇宙说起。

宇宙是由什么组成的?你可能会想到星球、尘埃以及广阔无垠的空间。

但是这些只是人类对于宇宙组成所理解的一小部分,我们可以从三个部分来概括宇宙的组成部分:正常物质,暗物质,还有暗能量。

正常物质只占宇宙所有能量的4%,暗物质占26%,而余下的70%左右的宇宙能量则都是暗能量。

虽然暗物质在整体宇宙能量中所占的比重很大,但现在却还不知道它由什么组成,未知大于已知。

正常的物质,包括了中子、质子、电子、中微子以及其他粒子。

而暗物质,只知道它是一种新的、不发光、不在人们现在所理解范畴内的物质。

比起宇宙全景图还要更为神奇,暗物质的作用又是什么呢?二、暗物质的作用暗物质的作用是什么呢?暗物质的存在可以解决大爆炸理论中的不自洽性,对结构形成也非常地关键。

暗物质很有可能是一种 或几种粒子物理标准模型以外的新粒子所构成。

对暗物质 和暗能量的研究是现代宇宙学和粒子物理的主要课题。

简单来说,暗物质就是科学家设想的用来填坑的,填的是许多无法解释的天文现象。

1933年瑞士物理学家弗里茨-兹威基 Fritz Zwichy区别用两种方法来计算后发座宇宙岛团 距离太阳系大约3.2亿光年的质量,一是“根据各宇宙岛运动速度来计算其质量”,二是“根据各宇宙岛内的太阳亮度来计算其质量”。

但前者所得质量是后者的400倍。

为解释这一矛盾,他提出宇宙岛中存在“无法看到的质量”。

而这个质量就是暗物质的质量。

海洋中的恐怖物种,看看你有没有见到过?

神奇的海洋中,恐怖物种有许多海洋当作地球占据面积最多的地方,对于人类来说是非常神奇的,毕竟有大多数的人都是没有见过海洋。

其中还要最深的地方可以达到1万多米。

就是我们用人类的力量去不到的家园,在这个海洋家园当中有着很多强悍的物种,那我们来看一看有哪些是我们在平时生活当中根本见不到的强悍物种。

海洋中的隐形物种在海洋当中有着一种隐形的物种,它的浑身都是透明的,要是在海水当中不仔细看,肯定是发现不了。

这种物种的名字叫12,它的外形就像是一片柳树叶儿一样。

不管是身体还是里面的骨头都是透明的,只有眼睛的部分有一点发黑,在没有光线的时候,柳叶鳗根本看不到,在有一点光线的时候,柳叶鳗就像是一条丝带一样,这在海洋当中扭动。

柳叶鳗的捕食能力柳叶鳗长成这样可以大大幸免他们被其他动物给捕食。

而且他们也可以更好的隐藏自己,他们平时都是欢欢躲藏在水下休息,然后再到了夜晚的时候,一旦遇到一些小鱼小虾在他们面前经过,他就会毫不犹豫的张口直接吃掉,而这些被吃掉的小鱼小虾进入到他们身体之后也是会变成透明,而在柳叶鳗长得越来越大之后,他身体里面的黑色素也越来越多,逐渐就会变成黑色的样子。

并不是,永远都是透明。

柳叶鳗的营养价值柳叶鳗别看他们是生活在深海当中,可是也没有能够躲过被人类捕捞的命运,柳叶鳗有着很丰富的营养价值,不过因为捕捞难度比较高,价格也比较高,导致市场并不是巨大。

加入收藏
               

C++中的友元关系浅析

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录