Data语意学

空类不空

class A

{

}

sizeof(A) == 1.

原因:如果A的sizeof是0,A a1, A a2

a1和a2的地址如何处理?&a1是什么呢?所以编译器为空类会插入一个字节。


1、Data Member的绑定

inline函数是会在整个class声明出现之后才开始进行分析。不会出现成员变量在inline函数后面而找不到定义。


2、Data Member的布局

C++标准要求,在同一个access section(public, private ,protected)中,member的排列只需符合“较晚出现的members在class object中较高的地址”

如下

class Point3d

{

public:

private:

float x;

float y;

float z;

private:

float x2;

float y2;

float z2;

}

C++标准只要求,x,y,z的地址顺序z>y>x,z2>y2>x2。x和x2的顺序则不做要求,或则在z,y,x中间插入其它内容也不做要求。如vptr,不过编译器一般会将vptr插入到所有member的最后面。

把8个变量申明在一个access section或则申明8个access section各方一个变量。大小都是一样的


3、Data Member的存取

3.1、static data member

每一个static data member只有一个实体,放在程序的data segment之中。取一个static data member的地址,会得到其指向static的真正地址,而不是指向类成员的指针。

如果两个类都申明一个static member freelist,编译不会导致名字冲突。因为编译器给每个static会进行改名,通过加上类名,命名空间等(与函数类似)。

3.2、nonstatic data member

存储每个非静态成员变量,编译器需要把类对象的起始地址加上成员变量的偏移量。我们取非静态成员变量的地址,实际上获取的是它的一个偏移量。

偏移量在编译器就能够确定(成员变量的顺序),即存储非静态成员变量的效率和存取一个C结构的member是一样的。


4、Data member碰上继承

4.1 只要继承不要多态

A继承自B,如果A的大小是3个字节,实际会进行4字节对齐。B自身大小为1个字节,C++也不会将A,B合并成4字节,而是让A继续保持4字节,B再次对齐,这样出现8字节的情况。

如果将B直接填充到A的最后一位,在赋值的时候

*B = *A,这样会把B的值覆盖掉,而不是保留原有的值,只覆盖A的信息。

4.2 加上多态

4.3 多重继承

class A

class B:

class C: public A, public B

在内存布局中

A

B

C

C* pc;

A* pa = pc。两者地址是一样的。C包含了A,B的内容,起始地址就是A的地址。

B* pb = pc。两者的地址就不同了,因为B在中间那部分,得到的应该是A的地址加上A的大小


5、对象成员的效率





知识表示习语义融合是指将知识图谱和自然语言文本的语义信息进行融合,以获取更丰富的知识表示。在这个过程中,基于深度习的表示习方法被广泛应用。这些方法通过将知识库中的实体和关系表示为稠密低维实值向量,使得在低维向量空间中,语义相似的实体和关系之间的距离更近。这样,可以更好地处理数据稀疏问题,并提高知识的获取、融合和推理性能。 融合文本和知识图谱的知识习表示方法可以有多种形式,其中一种常见的方法是将文本信息和知识图谱中的实体和关系进行联合建模。这种方法可以通过将文本信息与实体和关系的低维向量进行拼接或加权融合,来获取综合的语义表示。通过这种融合方式,可以使得知识图谱中的实体和关系具备更丰富的语义信息,同时也能够充分利用文本中的上下文信息,提高知识表示的准确性和丰富度。 知识图谱的自动获取和应用是知识表示习的两个重要课题。自动获取涉及实体链接和关系分类等技术,旨在从大规模文本数据中提取实体和关系信息,并构建知识图谱。而知识图谱的应用则涉及语义分析、智能问答和搜索等场景,通过将知识图谱与自然语言文本进行融合,可以进一步提高这些应用的性能和效果。 综上所述,知识表示习语义融合是一种将知识图谱和自然语言文本的语义信息进行融合的方法,通过深度习的表示习技术,可以获取更丰富、准确的知识表示,从而提高知识获取、融合和推理的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [融合多源信息的知识表示习方法](https://blog.csdn.net/u011983997/article/details/122702751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [知识图谱问答 | (4) 知识图谱和语义表示](https://blog.csdn.net/sdu_hao/article/details/105928693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值