这些是基本的开发语言语句,HB++对面向对象作了不少支持工作,在这方面,比VB.NET最新版的面向对象支持方面更加出色.
一.类定义方式
Class 类名
End Class
类名是全局的,完全可以作为一个新类型使用.
HB++提供TypeDef语句,将任何类型都可以拥有别名,也可以传递定义别名.
二.继承
Class 类名 From 父类名
End Class
函数名相同,参数类型相同或返回类型相同,会被子类覆盖父类.
但在子类函数中给定父类名的限定词,可以调用父类的函数.
成员数据如果名称相同,同样会覆盖父类此同名成员数据.只有前面加父类名限定词可以读取父类中的此成员数据.
三.重载
函数名相同,参数类型或返回类型不同,即为重载.在使用函数过程中,HB++自动编译出此函数应该是哪个具体执行的函数.
同时,如果没有函数重载,那么,HB++自动转换参数类型不同的情况.
HB++也支持缺省参数方式,对函数参数定义时,只要在参数定义中加上 OPARETION 参数定义 [= 缺省值],就表示此参数属于可选择的参数)
四.虚函数
同C++的虚函数具有等同的功效.要求必须是同一基类派生的子类中设定的虚函数拥有自动识别类自身的函数编译能力.
五.构造函数
对于类构造,会自动执行构造函数.构造函数具有一般函数的相同性质,可以重载.构造函数的继承,会根据父类相同构造函数自动继承,如果父类没有此构造函数,HB++会自动将缺省构造函数作为继承执行的构造函数.缺省构造函数就是无参数的构造函数.
六.事件继承
提供预置事件处理功能.事件在C++中是靠函数指针实现,在HB++中有相同的处理方法,但没有具体的事件函数指针.你只要定义事件属性就可以了.
如果在类定义中,除了定义事件属性外,还对此事件编写了具体操作过程,这样,只要是此类或此类的派生类的对象实例,都会自动拥有这个事件的处理过程.当然,你也可以对某个对象实例单独定义事件处理过程,这样会覆盖预定义的事件处理过程.如果仍然需要预定义的事件,可以在自己的事件定义中调用预定义的事件过程.
七.类模板
Class 类名<类型参数表>
类型参数表的参数个数最多达到10个
类模板与C++中的类模板有相同的功效.我们可以把事情解决方案抽象化,制作成模板,只要带入要使用的类型,就可以达到复用功效.
八.读写属性函数
Property Get 属性函数名() as 返回类型
End Property
Property Let 属性函数名(新值 as 类型)
End Property
Property Set 属性函数名(新值 as 对象类)
End Property
当使用属性函数名是,如果是读操作,会自动执行读的函数(Get),如果是写操作,会自动执行写的操作(LET或SET)
九.自动保存工程数据
只要是使用HB++中的类或集合类模板,HB++将会把不管多么复杂的类关联的实例,一一保存到指定的文件中,而且是单文件.
读取时,仅仅执行此类的Load(文件名)即可自动恢复原来的所有对象数据.
这样,开发应用软件不需要考虑保存工程数据的问题.
十.类信息
HB++的中文名称是:透明语言,对于透明,HB++提供读取类信息的能力和再次外部扩展类功能的能力.
梦郎