面向对象编程语言的对象的扩展方法及装置制造方法及图纸

技术编号:28672390 阅读:13 留言:0更新日期:2021-06-02 02:48
本发明专利技术提供一种面向对象编程语言的对象的扩展方法及装置,方法包括:建立面向对象编程语言的基类对象;将基类对象注册至外部的功能注册表;运行面向对象程序调用的所述基类对象中的目标基类对象时,遍历所述功能注册表并确定目标基类对象;执行确定的所述目标基类对象。本发明专利技术能够有效地将对象间的复杂依赖关系转化为一个线性的功能注册表,对功能注册表进行线性遍历,从而实现对象的特有功能,提高了面向对象的兼容性,进而提高面向对象开发的灵活性。

【技术实现步骤摘要】
面向对象编程语言的对象的扩展方法及装置
本专利技术涉及计算机软件
,具体涉及一种面向对象编程语言的对象的扩展方法及装置。
技术介绍
面向对象的编程语言是最重要的计算机软件开发语言之一,广泛应用于各行各业的软件开发。面向对象机制的三大特点:继承、封装与多态。对象从父类(基类)派生,继承父类的公有方法与数据,同时又具有自己的特有方法与数据,任何一个对象,从父类从发,都可以看成一棵对象树,其功能与数据不断增强,这是面向对象技术的核心。在软件开发中,子对象的方法与数据,很大部分都是继承自父类或者父类的父类,在应用中要得到一个对象的应用,就需要知道所有父类的声明(头文件)及实现,这种对象间继承的内在的依赖关系是必然存在的。但是,在大型的软件系统开发中,复杂的对象间的依赖关系,导致有时无法得到父类对象的声明,有时也得不到对象的声明,成为软件开发的一大难点。
技术实现思路
针对现有技术中的问题,本专利技术提供一种地震数据中强反射信号分离方法及装置,能够有效提高地震数据中的强反射信号的分离准确性,且能够有效提高分离强反射信号后得到的有效信号的保真性。为解决上述技术问题,本专利技术提供以下技术方案:第一方面,本专利技术提供一种面向对象编程语言的对象的扩展方法,包括:建立面向对象编程语言的基类对象;将基类对象注册至外部的功能注册表;运行面向对象程序调用的所述基类对象中的目标基类对象时,遍历所述功能注册表并确定目标基类对象;执行确定的所述目标基类对象。其中,所述建立面向对象编程语言的基类对象,包括:确定基类对象的区分编码、功能类别编码和名称;通过虚函数的方式声明区分编码、功能类别编码和名称,得到基类对象。进一步的,还包括:根据所述基类对象的名称和hash函数建立用于检索基类对象的检索表;相对应的,所述将基类对象注册至外部的功能注册表,包括:将所述基类对象和所述检索表注册至外部的功能注册表。其中,所述遍历所述功能注册表并确定目标基类对象,包括:根据所述目标基类对象的目标名称,遍历所述检索表并确定所述检索表中所述目标名称对应的基类对象;其中,确定所述检索表中所述目标名称对应的基类对象为目标基类对象。其中,所述遍历所述功能注册表并确定目标基类对象,包括:通过所述功能类别编码和/或所述名称确定基类对象中的目标基类对象。其中,所述功能注册表是根据所述基类对象生成的线性表。第二方面,本专利技术提供一种面向对象编程语言的对象的扩展装置,包括:声明单元,用于建立面向对象编程语言的基类对象;注册单元,用于将基类对象注册至外部的功能注册表;遍历单元,用于运行面向对象程序调用的所述基类对象中的目标基类对象时,遍历所述功能注册表并确定目标基类对象;执行单元,用于执行确定的所述目标基类对象。其中,所述声明单元包括:划分模块,用于确定基类对象的区分编码、功能类别编码和名称;声明模块,用于通过虚函数的方式声明区分编码、功能类别编码和名称,得到基类对象。进一步的,还包括:检索模块,用于根据所述基类对象的名称和hash函数建立用于检索基类对象的检索表;相对应的,所述注册单元包括:注册子单元,用于将所述基类对象和所述检索表注册至外部的功能注册表。其中,所述遍历单元包括:第一遍历模块,用于根据所述目标基类对象的目标名称,遍历所述检索表并确定所述检索表中所述目标名称对应的基类对象;其中,确定所述检索表中所述目标名称对应的基类对象为目标基类对象。其中,所述遍历单元包括:第二遍历模块,用于通过所述功能类别编码和/或所述名称确定基类对象中的目标基类对象。其中,所述功能注册表是根据所述基类对象生成的线性表。第三方面,本专利技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的面向对象编程语言的对象的扩展方法的步骤。第四方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的面向对象编程语言的对象的扩展方法的步骤。由上述技术方案可知,本专利技术提供一种面向对象编程语言的对象的扩展方法及装置,通过建立面向对象编程语言的基类对象;将基类对象注册至外部的功能注册表;运行面向对象程序调用的所述基类对象中的目标基类对象时,遍历所述功能注册表并确定目标基类对象;执行确定的所述目标基类对象,能够有效地将对象间的复杂依赖关系转化为一个线性的功能注册表,对功能注册表进行线性遍历,从而实现对象的特有功能,提高了面向对象的兼容性,进而提高面向对象开发的灵活性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中的面向对象编程语言的对象的扩展方法的第一种流程示意图。图2为本专利技术实施例中的面向对象编程语言的对象的扩展方法的第二种流程示意图。图3为本专利技术实施例中的面向对象编程语言的对象的扩展装置的结构示意图。图4为本专利技术实施例中的电子设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种面向对象编程语言的对象的扩展方法的实施例,参见图1,所述面向对象编程语言的对象的扩展方法具体包含有如下内容:S101:建立面向对象编程语言的基类对象;在本步骤中,建立面向对象编程语言的基类对象需要确定基类对象的区分编码、功能类别编码和名称;通过虚函数virtual的方式声明区分编码、功能类别编码和名称,得到基类对象。其中,通过区分编码能够对不同的基类对象进行自定义编码区分。例如:virtualinttype,声明基类对象的功能类别编码,virtualconstchar*name,声明基类对象的名称。可以理解的是,基类对象为父类对象。S102:将基类对象注册至外部的功能注册表;在本步骤中,将建立的基类对象注册至外部的功能注册表中,其中,功能注册表是根据基类对象生成的线性表,并提供一系列的函数,例如:查找、注册、注销、排序和检索。将基类对象注册至功能注册表中时,分别通过关键字regist和关键字unregist,向功能注册表中注册新的扩展功能和注销特定的扩展功能。需要说明本文档来自技高网...

【技术保护点】
1.一种面向对象编程语言的对象的扩展方法,其特征在于,包括:/n建立面向对象编程语言的基类对象;/n将基类对象注册至外部的功能注册表;/n运行面向对象程序调用的所述基类对象中的目标基类对象时,遍历所述功能注册表并确定目标基类对象;/n执行确定的所述目标基类对象。/n

【技术特征摘要】
1.一种面向对象编程语言的对象的扩展方法,其特征在于,包括:
建立面向对象编程语言的基类对象;
将基类对象注册至外部的功能注册表;
运行面向对象程序调用的所述基类对象中的目标基类对象时,遍历所述功能注册表并确定目标基类对象;
执行确定的所述目标基类对象。


2.根据权利要求1所述的面向对象编程语言的对象的扩展方法,其特征在于,所述建立面向对象编程语言的基类对象,包括:
确定基类对象的区分编码、功能类别编码和名称;
通过虚函数的方式声明区分编码、功能类别编码和名称,得到基类对象。


3.根据权利要求2所述的面向对象编程语言的对象的扩展方法,其特征在于,还包括:
根据所述基类对象的名称和hash函数建立用于检索基类对象的检索表;
相对应的,所述将基类对象注册至外部的功能注册表,包括:
将所述基类对象和所述检索表注册至外部的功能注册表。


4.根据权利要求3所述的面向对象编程语言的对象的扩展方法,其特征在于,所述遍历所述功能注册表并确定目标基类对象,包括:
根据所述目标基类对象的目标名称,遍历所述检索表并确定所述检索表中所述目标名称对应的基类对象;
其中,确定所述检索表中所述目标名称对应的基类对象为目标基类对象。


5.根据权利要求2所述的面向对象编程语言的对象的扩展方法,其特征在于,所述遍历所述功能注册表并确定目标基类对象,包括:
通过所述功能类别编码和/或所述名称确定基类对象中的目标基类对象。


6.根据权利要求1所述的面向对象编程语言的对象的扩展方法,其特征在于,所述功能注册表是根据所述基类对象生成的线性表。


7.一种面向对象编程语言的对象的扩展装置,其特征在于,包括:
声明单元,用于建立面向对象编程语言的基类对象;
注册单元,用于将基类对象注册至外部的功能注册表;
遍历单元,用于运行面向对象程序调...

【专利技术属性】
技术研发人员:孙夕平李凌高于永才梅胜全
申请(专利权)人:中国石油天然气股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1