Delphi中的结构体与类
结构体与类的概述
结构体可以看作轻量级的类。 从使用的方式上讲,结构体定义了便可直接使用,而类必须创建该类的对象才可使用。 从内存的管理上讲,结构体对内存的占用是由应用自动维护的,而类则需要手动创建该类的对象,当我们不再需要时要手动释放。注意:相比轻量级的结构体,重量级的类可以有更复杂的功能,同时类更加地体现面向对象的思想。
结构体与类的定义
结构体与类的定义使用的关键字不同,分别是:record、class。type {使用record定义一个结构体} MyRecord = record {定义结构体的属性} name: String; {定义结构体的过程} procedure showName; {定义结构体的方法} function getName(): String; end; {使用class定义一个类} MyClass = class {定义类的属性} name: String; {定义类的过程} procedure showName; {定义类的方法} function getName(): String; end;结构体与类中过程与方法的具体实现
{ MyRecord } function MyRecord.getName: String; begin Result := name; end; procedure MyRecord.showName; begin showMessage(name); end; { MyClass } function MyClass.getName: String; begin Result := name; end; procedure MyClass.showName; begin showMessage(name); end; end.
结构体与类的使用
procedure TForm1.Button1Click(Sender: TObject); var {在此声明结构体后便可直接使用} mRecord: MyRecord; {在此声明类后还需要创建该类的对象} mClass: MyClass; begin {操作结构体中的属性、过程、方法} mRecord.name :="mRecord_name"; showMessage(mRecord.name); showMessage(mRecord.getName); mRecord.showName(); {这里需要先创建类的对象} mClass := MyClass.Create(); {操作类中的属性、过程、方法} mClass.name :="mClass_name"; showMessage(mClass.name); showMessage(mClass.getName); mClass.showName(); end;
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: sizeof&结构体、共同体大小的计算方法笔记
- 下一篇: 深度解析求结构体sizeof问题