CN113971019A - 数据类型创建方法、装置、服务器及介质 - Google Patents
数据类型创建方法、装置、服务器及介质 Download PDFInfo
- Publication number
- CN113971019A CN113971019A CN202111214248.4A CN202111214248A CN113971019A CN 113971019 A CN113971019 A CN 113971019A CN 202111214248 A CN202111214248 A CN 202111214248A CN 113971019 A CN113971019 A CN 113971019A
- Authority
- CN
- China
- Prior art keywords
- variable
- target
- type
- subclass
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000006870 function Effects 0.000 claims description 106
- 238000004590 computer program Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- XXQGYGJZNMSSFD-UHFFFAOYSA-N 2-[2-(dimethylcarbamoyl)phenoxy]acetic acid Chemical compound CN(C)C(=O)C1=CC=CC=C1OCC(O)=O XXQGYGJZNMSSFD-UHFFFAOYSA-N 0.000 description 1
- 102100022443 CXADR-like membrane protein Human genes 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
- G06F8/437—Type checking
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于计算机技术领域,提供了数据类型创建方法、装置、服务器及介质,包括:创建虚基类,以及将所创建的虚基类确定为父类;创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型;将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,子类对象具有子类的全部特征。本申请可以实现创建一种新的数据类型。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种数据类型创建方法、装置、服务器及介质。
背景技术
开放式诊断交换格式(Open Diagnostic eXchange format,ODX)是基于可扩展标记语言(Extensible Markup Language,XML)、开放的诊断数据格式,用于车辆整个生命周期中诊断数据的交互。它最初由ASAM提出并形成标准MCD-2D,后来以ODX2.2.0为基础形成了ISO标准,即ISO 22901-1标准。开放测试序列交换格式(Open Test sequence eXchange,OTX)是基于XML语言的开放式测试序列交换格式,用于描述基础的功能测试到整个测试应用的需求,符合ISO 13209标准。
相关技术中,在平台开发过程中,如,开发ODX/OTX平台的过程中,在程序中定义变量时,通常需要同时定义变量的变量名和变量的变量类型。然而在一些应用场景中,可能需要结合实际应用需求给变量赋予变量类型,如,可以在一些场景中,给变量赋予字符串类型,也可以在另一些场景中给变量赋予整数类型。也即是说,相关技术中只能同时定义变量的变量名和变量类型的方式不够灵活。
发明内容
本申请实施例提供了数据类型创建方法、装置、服务器及介质,旨在解决相关技术中,只能同时定义变量的变量名和变量类型的方式不够灵活的问题。
第一方面,本申请实施例提供了一种数据类型创建方法,该方法包括:
创建虚基类,以及将所创建的虚基类确定为父类;
创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型;
将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,子类对象具有子类的全部特征。
进一步地,创建父类的子类,包括:
将子类确定为模板类;
构建子类的子类实现函数;
其中,子类实现函数包括:用于确定目标变量的变量类型的类型实现函数,类型实现函数基于类模板和目标变量的关联变量的变量类型生成目标变量的变量类型。
进一步地,子类实现函数还包括以下至少一项:
用于确定目标变量的值的取值实现函数、用于确定目标变量的指针的指针实现函数、用于给目标变量赋值的赋值实现函数。
进一步地,将父类实例化为子类对象,包括:
创建父类类型的智能指针;
构建从子类中获取信息的信息获取函数,信息获取函数包括以下至少一项:取值获取函数、指针获取函数、类型获取函数;
其中,子类对象包括智能指针和信息获取函数。
进一步地,将父类实例化为子类对象,还包括:
配置可重载的目标操作符和目标函数,以实现对目标操作符和/或目标函数进行重载;
其中,子类对象还包括目标操作符和目标函数。
进一步地,方法还包括:
响应于检测到目标程序中存在具有目标数据类型的目标变量,从目标程序中查找目标变量的关联变量及关联变量的变量类型,以及根据关联变量的变量类型,确定目标变量的变量类型。
进一步地,从目标程序中查找目标变量的关联变量及关联变量的变量类型,以及根据关联变量的变量类型,确定目标变量的变量类型,包括:
从目标程序中的目标变量之后的程序中,查找与目标变量以等号操作符连接的变量,将所找到的变量确定为目标变量的关联变量;
从目标程序中的目标变量之前的程序中,查找关联变量及关联变量的变量类型,以及将关联变量的变量类型确定为目标变量的变量类型。
第二方面,本申请实施例提供了一种数据类型创建装置,该装置包括:
第一创建单元,用于创建虚基类,以及将所创建的虚基类确定为父类;
第二创建单元,用于创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型;
目标创建单元,用于将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,子类对象具有子类的全部特征。
第三方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述数据类型创建方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述数据类型创建方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中任一项的数据类型创建方法。
本申请实施例与相关技术相比存在的有益效果是:创建父类及父类的子类,其中,子类可以基于目标变量的关联变量的变量类型生成目标变量的变量类型,然后通过将父类实例化为子类对象,实现得到新的目标数据类型,由于子类对象具有子类的全部特征,因此,可以实现所得到的目标数据类型自动基于目标变量的关联变量的变量类型生成针对目标变量的变量类型。比及相关技术中只能同时定义变量的变量名和变量类型的方式,本申请可以实现结合实际需要,基于关联变量的变量类型,给变量赋予变量类型,灵活度更高。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的数据类型创建方法应用的系统架构图;
图2是本申请一实施例提供的数据类型创建方法的流程示意图;
图3是本申请另一实施例提供的数据类型创建方法的流程示意图;
图4是本申请一实施例提供的数据类型创建装置的结构示意图;
图5是本申请一实施例提供的服务器的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了说明本申请的技术方案,下面通过以下实施例来进行说明。
实施例一
参考图1,为本申请实施例提供的一种数据类型创建方法应用的系统架构图。
如图1所示,系统架构可以包括用户终端101、服务器102,其中,用户终端101与服务器102可以通过网络连接。网络用以在用户终端101和服务器102之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器102可以是各种服务器,如,可以是创建目标数据类型的服务器。实践中,服务器102可以创建虚基类,以及将所创建的虚基类确定为父类;创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型;将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,子类对象具有子类的全部特征。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
用户终端101可以是具有显示屏并且支持用户信息输入的各种电子设备,包括但不限于平板电脑、膝上型便携计算机和台式计算机等等。实践中,用户终端101上可以安装有各种应用,例如编程类应用等。用户终端101在运行编程类应用时,可以对服务器102上创建得到的目标数据类型进行应用,以实现自动基于目标变量的关联变量的变量类型生成目标变量的变量类型。
需要说明的是,本申请实施例所提供的数据类型创建方法一般由服务器102执行,相应地,数据类型创建装置一般设置于服务器102中。
应该理解,图1中的用户终端和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的用户终端和服务器。
实施例二
参考图2,为本申请实施例提供的一种数据类型创建方法的流程示意图,如图2所示的数据类型创建方法,包括:
步骤201,创建虚基类,以及将所创建的虚基类确定为父类。
在本实施例中,用于执行上述数据类型创建方法的执行主体通常为服务器(例如图1所示的服务器102)。
这里,上述执行主体可以直接创建一个虚基类,以及将所创建的虚基类作为父类。
需要指出的是,当在多条继承路径上有一个公共的基类,在这些路径中的某几条汇合处,这个公共的基类就会产生多个实例(或多个副本),若只想保存这个基类的一个实例,可以将这个公共基类说明为虚基类。
步骤202,创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型。
其中,变量类型包括以下任一项:整数类型、浮点数类型、布尔类型、字符类型。
这里,上述执行主体可以在父类的基础上进一步创建该父类的子类,以及将所创建的子类配置为模板类。这里,将所创建的子类配置为模板类,其中可存储各种类模板,可以实现采用类模板生成所需的变量类型。实践中,上述执行主体可以通过执行预先设定的关系声明步骤,实现确定父类与子类之间的关系。如,若某一个类为A,另一个类为B,上述执行主体可以通过执行如下声明确定A与B之间的关系:“calss B:public A”。
实践中,上述基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型,通常是采用类模板,确定关联变量的变量类型,然后生成与关联变量的变量类型相同的变量类型。如,若关联变量的变量类型为整数类型,则目标变量生成的变量类型也为整数类型。
步骤203,将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型。
其中,子类对象具有子类的全部特征。
其中,实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。
这里,上述执行主体可以将父类实例化为具体情形下的子类对象,以及将实例化得到的子类对象确定为目标数据类型,从而实现创建目标数据类型。作为一个示例,上述执行主体可以通过构建父类类型的指针实现将父类实例化为子类对象。
本实施例提供的方法,创建父类及父类的子类,其中,子类可以基于目标变量的关联变量的变量类型生成针对目标变量的变量类型,然后通过将父类实例化为子类对象,实现得到新的目标数据类型,由于子类对象具有子类的全部特征,因此,可以实现所得到的目标数据类型自动基于目标变量的关联变量的变量类型生成针对目标变量的变量类型。比及相关技术中只能同时定义变量的变量名和变量类型的方式,本申请可以实现结合实际需要,基于关联变量的变量类型,给变量赋予变量类型,灵活度更高。
在本实施例的一些可选的实现方式中,上述创建父类的子类,包括:首先,将子类确定为模板类。然后,构建子类的子类实现函数。
其中,子类实现函数包括:用于确定目标变量的变量类型的类型实现函数,类型实现函数基于类模板和目标变量的关联变量的变量类型生成目标变量的变量类型。
其中,上述子类实现函数通常是用于实现子类的功能的函数。实践中,子类实现函数可以包括:用于确定目标变量的变量类型的类型实现函数,类型实现函数基于类模板和目标变量的关联变量的变量类型生成目标变量的变量类型。
实践中,上述类型实现函数中,上述基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型,通常是采用类模板,确定关联变量的变量类型,然后生成与关联变量的变量类型相同的变量类型。如,若关联变量的变量类型为整数类型,则针对目标变量生成的变量类型也为整数类型。
在一些可选的实现方式中,子类实现函数还可以包括以下至少一项:用于确定目标变量的值的取值实现函数、用于确定目标变量的指针的指针实现函数、用于给目标变量赋值的赋值实现函数。
其中,上述取值实现函数通常是用于确定目标变量的取值的函数。实践中,取值实现函数通常执行如下步骤:查找目标变量的关联变量,获取关联变量的取值,将关联变量的取值确定为目标变量的取值。
上述指针实现函数通常是用于确定目标变量的指针的函数。上述赋值实现函数通常是用于给目标变量赋值的函数。具体地,赋值实现函数可以将所确定的目标变量的值直接赋值给该目标变量。
需要指出的是,子类实现函数所包括的多个函数可以实现为一个函数,也可以实现为多个函数,本实施例不做限定。
在本实施例的一些可选的实现方式中,上述将父类实例化为子类对象,包括:首先,创建父类类型的智能指针。然后,构建从子类中获取信息的信息获取函数。信息获取函数包括以下至少一项:取值获取函数、指针获取函数、类型获取函数。其中,子类对象包括智能指针和信息获取函数。
其中,上述信息获取函数通常是从子类中获取信息的函数。实践中,信息获取函数通常是从子类实现函数的输出结果中获取信息,如,获取目标变量的取值信息、指针信息和类型信息等。信息获取函数可以实现成一个函数,也可以实现成多个函数。
其中,上述智能指针通常是可以自动释放内存的指针。通过智能指针的方式将父类实例化为子类对象,可以实现更好地对目标数据类型的变量进行内存管理,及时释放内存,可以节约存储资源。
在一些实现方式中,将父类实例化为子类对象,还可以包括:配置可重载的目标操作符和目标函数,以实现对目标操作符和/或目标函数进行重载。
其中,子类对象还包括目标操作符和目标函数。
其中,目标操作符可以是预先设定的操作符。如,目标操作符可以为“>”、“=”、“!=”、“==”等。目标函数可以是预先设定的函数,实践中,目标函数可以为构造函数、拷贝构造函数等。
需要指出的是,在实例化得到的子类对象中配置可重载的目标操作符和目标函数,可以实现对目标操作符和目标函数进行重载。
实施例三
进一步参考图3,为本申请实施例提供的数据类型创建方法的流程示意图。该数据类型创建方法,包括以下步骤:
步骤301,创建虚基类,以及将所创建的虚基类确定为父类。
步骤302,创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型。
其中,变量类型包括以下任一项:整数类型、浮点数类型、布尔类型、字符类型。
步骤303,将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型。
其中,子类对象具有子类的全部特征。
在本实施例中,步骤301-303的具体操作与图2所示的实施例中步骤201-203的操作基本相同,在此不再赘述。
步骤304,响应于检测到目标程序中存在具有目标数据类型的目标变量,从目标程序中查找目标变量的关联变量及关联变量的变量类型,以及根据关联变量的变量类型,确定目标变量的变量类型。
其中,上述目标程序通常是预先设定的程序。如,可以是用于开发平台的程序。上述目标变量通常是具有目标数据类型的变量。
这里,上述执行主体可以检测目标程序中是否存在具有目标数据类型的变量,若存在具有目标数据类型的变量,则上述执行主体可以从目标程序中查找该变量的关联变量和关联变量的变量类型,然后,将关联变量的变量类型确定为目标变量的变量类型。
本实施例可以实现在对目标数据类型进行应用时,自动基于目标变量的关联变量的变量类型生成针对目标变量的变量类型,可以实现结合实际需要,基于关联变量的变量类型,给变量赋予变量类型,灵活度更高。
在一些可选的实现方式中,从目标程序中查找目标变量的关联变量及关联变量的变量类型,以及根据关联变量的变量类型,确定目标变量的变量类型,可以包括:
首先,从目标程序中的目标变量之后的程序中,查找与目标变量以等号操作符连接的变量,将所找到的变量确定为目标变量的关联变量。
然后,从目标程序中的目标变量之前的程序中,查找关联变量及关联变量的变量类型,以及将关联变量的变量类型确定为目标变量的变量类型。
这里,上述执行主体可以以目标变量为分隔,从目标变量之后的程序中找到与目标变量之间以等号操作符“=”连接的变量,以及将所找到的变量确定为目标变量的关联变量。然后,上述执行主体可以从目标变量之前的程序中,找到关联变量,可以得到关联变量的取值、变量类型。之后,上述执行主体可以将关联变量的变量类型确定为目标变量的变量类型。
实施例四
进一步参考图4,对应于上文实施例的数据类型创建方法,图4为本申请实施例提供的数据类型创建装置400的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该装置包括:
第一创建单元401,用于创建虚基类,以及将所创建的虚基类确定为父类;
第二创建单元402,用于创建父类的子类,子类为模板类,且子类用于基于类模板和目标变量的关联变量的变量类型,生成目标变量的变量类型;
目标创建单元403,用于将父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,子类对象具有子类的全部特征。
在一些实施例中,第二创建单元402具体用于:将子类确定为模板类;构建子类的子类实现函数;其中,子类实现函数包括:用于确定目标变量的变量类型的类型实现函数,类型实现函数基于类模板和目标变量的关联变量的变量类型生成目标变量的变量类型。
在一些实施例中,第二创建单元402中,子类实现函数还包括以下至少一项:用于确定目标变量的值的取值实现函数、用于确定目标变量的指针的指针实现函数、用于给目标变量赋值的赋值实现函数。
在一些实施例中,目标创建单元403具体用于:创建父类类型的智能指针;构建从子类中获取信息的信息获取函数,信息获取函数包括以下至少一项:取值获取函数、指针获取函数、类型获取函数;其中,子类对象包括智能指针和信息获取函数。
在一些实施例中,目标创建单元403具体还用于:配置可重载的目标操作符和目标函数,以实现对目标操作符和/或目标函数进行重载;其中,子类对象还包括目标操作符和目标函数。
在一些实施例中,装置还包括类型应用单元(图中未示出)。其中,类型应用单元用于:响应于检测到目标程序中存在具有目标数据类型的目标变量,从目标程序中查找目标变量的关联变量及关联变量的变量类型,以及根据关联变量的变量类型,确定目标变量的变量类型。
在一些实施例中,类型应用单元具体用于:从目标程序中的目标变量之后的程序中,查找与目标变量以等号操作符连接的变量,将所找到的变量确定为目标变量的关联变量;从目标程序中的目标变量之前的程序中,查找关联变量及关联变量的变量类型,以及将关联变量的变量类型确定为目标变量的变量类型。
本实施例提供的装置,创建父类及父类的子类,其中,子类可以基于目标变量的关联变量的变量类型生成针对目标变量的变量类型,然后通过将父类实例化为子类对象,实现得到新的目标数据类型,由于子类对象具有子类的全部特征,因此,可以实现所得到的目标数据类型自动基于目标变量的关联变量的变量类型生成针对目标变量的变量类型。比及相关技术中只能同时定义变量的变量名和变量类型的方式,本申请可以实现结合实际需要,基于关联变量的变量类型,给变量赋予变量类型,灵活度更高。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例五
进一步参考图5,图5为本申请一实施例提供的服务器500的结构示意图。如图5所示,该实施例的服务器500包括:至少一个处理器501(图5中仅示出一个处理器)、存储器502以及存储在存储器502中并可在至少一个处理器501上运行的计算机程序503,例如数据类型创建程序。处理器501执行计算机程序503时实现上述任意各个方法实施例中的步骤。处理器501执行计算机程序503时实现上述各个数据类型创建方法的实施例中的步骤。处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元401至403的功能。
示例性的,计算机程序503可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在服务器500中的执行过程。例如,计算机程序503可以被分割成第一创建单元,第二创建单元,目标创建单元,各单元具体功能在上述实施例中已有描述,此处不再赘述。
服务器500可以是服务器、台式电脑、平板电脑、云端服务器和移动终端等计算设备。服务器500可包括,但不仅限于,处理器501,存储器502。本领域技术人员可以理解,图5仅仅是服务器500的示例,并不构成对服务器500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如服务器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器502可以是服务器500的内部存储单元,例如服务器500的硬盘或内存。存储器502也可以是服务器500的外部存储设备,例如服务器500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器502还可以既包括服务器500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及服务器所需的其他程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置/服务器实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据类型创建方法,其特征在于,所述方法包括:
创建虚基类,以及将所创建的虚基类确定为父类;
创建所述父类的子类,所述子类为模板类,且所述子类用于基于类模板和目标变量的关联变量的变量类型,生成所述目标变量的变量类型;
将所述父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,所述子类对象具有所述子类的全部特征。
2.根据权利要求1所述的数据类型创建方法,其特征在于,所述创建所述父类的子类,包括:
将子类确定为模板类;
构建子类的子类实现函数;
其中,所述子类实现函数包括:用于确定所述目标变量的变量类型的类型实现函数,所述类型实现函数基于所述类模板和所述目标变量的关联变量的变量类型生成所述目标变量的变量类型。
3.根据权利要求2所述的数据类型创建方法,其特征在于,所述子类实现函数还包括以下至少一项:
用于确定所述目标变量的值的取值实现函数、用于确定所述目标变量的指针的指针实现函数、用于给所述目标变量赋值的赋值实现函数。
4.根据权利要求1所述的数据类型创建方法,其特征在于,所述将所述父类实例化为子类对象,包括:
创建父类类型的智能指针;
构建从子类中获取信息的信息获取函数,所述信息获取函数包括以下至少一项:取值获取函数、指针获取函数、类型获取函数;
其中,所述子类对象包括所述智能指针和所述信息获取函数。
5.根据权利要求4所述的数据类型创建方法,其特征在于,所述将所述父类实例化为子类对象,还包括:
配置可重载的目标操作符和目标函数,以实现对目标操作符和/或目标函数进行重载;
其中,所述子类对象还包括目标操作符和目标函数。
6.根据权利要求1-5中任一项所述的数据类型创建方法,其特征在于,所述方法还包括:
响应于检测到目标程序中存在具有所述目标数据类型的所述目标变量,从所述目标程序中查找所述目标变量的关联变量及所述关联变量的变量类型,以及根据所述关联变量的变量类型,确定所述目标变量的变量类型。
7.根据权利要求6所述的数据类型创建方法,其特征在于,所述从所述目标程序中查找所述目标变量的关联变量及所述关联变量的变量类型,以及根据所述关联变量的变量类型,确定所述目标变量的变量类型,包括:
从所述目标程序中的所述目标变量之后的程序中,查找与所述目标变量以等号操作符连接的变量,将所找到的变量确定为所述目标变量的关联变量;
从所述目标程序中的所述目标变量之前的程序中,查找所述关联变量及所述关联变量的变量类型,以及将所述关联变量的变量类型确定为所述目标变量的变量类型。
8.一种数据类型创建装置,其特征在于,所述装置包括:
第一创建单元,用于创建虚基类,以及将所创建的虚基类确定为父类;
第二创建单元,用于创建所述父类的子类,所述子类为模板类,且所述子类用于基于类模板和目标变量的关联变量的变量类型,生成所述目标变量的变量类型;
目标创建单元,用于将所述父类实例化为子类对象,将实例化得到的子类对象确定为目标数据类型,以实现创建目标数据类型,其中,所述子类对象具有所述子类的全部特征。
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214248.4A CN113971019B (zh) | 2021-10-19 | 2021-10-19 | 数据类型创建方法、装置、服务器及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214248.4A CN113971019B (zh) | 2021-10-19 | 2021-10-19 | 数据类型创建方法、装置、服务器及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113971019A true CN113971019A (zh) | 2022-01-25 |
CN113971019B CN113971019B (zh) | 2024-10-18 |
Family
ID=79587605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111214248.4A Active CN113971019B (zh) | 2021-10-19 | 2021-10-19 | 数据类型创建方法、装置、服务器及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971019B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116894412A (zh) * | 2023-07-20 | 2023-10-17 | 北京云枢创新软件技术有限公司 | 构建SystemVerilog对象多层结构的按需加载方法、电子设备和介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138269A (en) * | 1998-05-20 | 2000-10-24 | Sun Microsystems, Inc. | Determining the actual class of an object at run time |
US6163813A (en) * | 1995-06-07 | 2000-12-19 | International Business Machines Corporation | Pattern for instantiating objects of unknown type in object-oriented applications |
US6385769B1 (en) * | 1999-02-03 | 2002-05-07 | International Business Machines Corporation | Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats |
CN1462135A (zh) * | 2002-05-28 | 2003-12-17 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种基于类模板管理器的通讯报文处理设备和方法 |
US20060117302A1 (en) * | 2004-11-23 | 2006-06-01 | National Instruments Corporation | Type propagation for automatic casting of output types in a data flow program |
CN101165658A (zh) * | 2006-10-18 | 2008-04-23 | 国际商业机器公司 | 自动生成可再现运行时问题的单元测试用例的方法和系统 |
US20080235675A1 (en) * | 2007-03-22 | 2008-09-25 | Microsoft Corporation | Typed intermediate language support for existing compilers |
US20160170724A1 (en) * | 2014-12-10 | 2016-06-16 | Microsoft Technology Licensing, Llc | Inter-procedural type propagation for devirtualization |
US20180004555A1 (en) * | 2016-06-29 | 2018-01-04 | Vmware, Inc. | Provisioning executable managed objects of a virtualized computing environment from non-executable managed objects |
CN108932123A (zh) * | 2018-06-21 | 2018-12-04 | 北京奇虎科技有限公司 | 参数处理方法和装置 |
CN109284108A (zh) * | 2018-08-30 | 2019-01-29 | 百度在线网络技术(北京)有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN109840093A (zh) * | 2018-12-24 | 2019-06-04 | 苏州蜗牛数字科技股份有限公司 | 一种任意函数适配器实现方法 |
CN113296786A (zh) * | 2021-05-31 | 2021-08-24 | 上海米哈游璃月科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-10-19 CN CN202111214248.4A patent/CN113971019B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163813A (en) * | 1995-06-07 | 2000-12-19 | International Business Machines Corporation | Pattern for instantiating objects of unknown type in object-oriented applications |
US6138269A (en) * | 1998-05-20 | 2000-10-24 | Sun Microsystems, Inc. | Determining the actual class of an object at run time |
US6385769B1 (en) * | 1999-02-03 | 2002-05-07 | International Business Machines Corporation | Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats |
CN1462135A (zh) * | 2002-05-28 | 2003-12-17 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种基于类模板管理器的通讯报文处理设备和方法 |
US20060117302A1 (en) * | 2004-11-23 | 2006-06-01 | National Instruments Corporation | Type propagation for automatic casting of output types in a data flow program |
CN101165658A (zh) * | 2006-10-18 | 2008-04-23 | 国际商业机器公司 | 自动生成可再现运行时问题的单元测试用例的方法和系统 |
US20080235675A1 (en) * | 2007-03-22 | 2008-09-25 | Microsoft Corporation | Typed intermediate language support for existing compilers |
US20160170724A1 (en) * | 2014-12-10 | 2016-06-16 | Microsoft Technology Licensing, Llc | Inter-procedural type propagation for devirtualization |
US20180004555A1 (en) * | 2016-06-29 | 2018-01-04 | Vmware, Inc. | Provisioning executable managed objects of a virtualized computing environment from non-executable managed objects |
CN108932123A (zh) * | 2018-06-21 | 2018-12-04 | 北京奇虎科技有限公司 | 参数处理方法和装置 |
CN109284108A (zh) * | 2018-08-30 | 2019-01-29 | 百度在线网络技术(北京)有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN109840093A (zh) * | 2018-12-24 | 2019-06-04 | 苏州蜗牛数字科技股份有限公司 | 一种任意函数适配器实现方法 |
CN113296786A (zh) * | 2021-05-31 | 2021-08-24 | 上海米哈游璃月科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
YANGARTUAN: "类模板/函数模板实现父类指针指向子类对象(虚函数实现多态)", Retrieved from the Internet <URL:https://cnblogs.com/YangARtuan/p/14109782.html> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116894412A (zh) * | 2023-07-20 | 2023-10-17 | 北京云枢创新软件技术有限公司 | 构建SystemVerilog对象多层结构的按需加载方法、电子设备和介质 |
CN116894412B (zh) * | 2023-07-20 | 2024-02-20 | 北京云枢创新软件技术有限公司 | 构建SystemVerilog对象多层结构的按需加载方法、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113971019B (zh) | 2024-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101795844B1 (ko) | 런타임 시스템 | |
US8869100B1 (en) | Data objects for model-based design | |
CN108319460B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
US6139198A (en) | System and method for enabling tracing of program execution in an object-oriented system | |
US10936309B2 (en) | Development project blueprint and package generation | |
US10514898B2 (en) | Method and system to develop, deploy, test, and manage platform-independent software | |
US9311111B2 (en) | Programming environment with support for handle and non-handle user-created classes | |
CN114691188A (zh) | 兼容性评估方法、装置、设备及存储介质 | |
CN111767056A (zh) | 一种源码编译方法、可执行文件运行方法及终端设备 | |
WO2021114902A1 (zh) | 程序初始化方法、程序初始化装置、终端设备及存储介质 | |
CN116737117A (zh) | 基于Autosar架构的模型开发方法 | |
US20020174082A1 (en) | Reusable parts for assembled software systems | |
US7984416B2 (en) | System and method for providing class definitions in a dynamically typed array-based language | |
CN113971019B (zh) | 数据类型创建方法、装置、服务器及介质 | |
CN116107669B (zh) | 深度学习框架的算子注册方法、装置、设备及存储介质 | |
CN116861040A (zh) | 生成脚本间血缘关系图的方法、装置、设备及存储介质 | |
CN116414689A (zh) | 一种基于反射机制的接口参数校验方法及系统 | |
CN112068895B (zh) | 代码配置方法、装置、视频播放设备及存储介质 | |
CN112764729B (zh) | 应用软件开发方法、装置、计算机设备及可读存储介质 | |
US7756691B2 (en) | Establishing relationships between components in simulation systems | |
US8135943B1 (en) | Method, apparatus, and computer-readable medium for generating a dispatching function | |
CN113778388A (zh) | 程序开发方法和装置 | |
US20230110520A1 (en) | Ui service package generation and registration method and apparatus, and ui service loading method and apparatus | |
CN116301878A (zh) | 查询软件模块的逆向依赖关系的方法、装置、设备及介质 | |
EP3164800B1 (en) | Bridging a module system and a non-module system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |