一、函数相关
1、函数形式参数
参数列表 = 参数声明[;参数声明;......]
参数声明 = [var/const/out] Identifier[:IdentifierType]
值参数:传值的方式传递参数,传递实际参数的副本
变量参数(var):引用的方式传递参数,传递实际参数的地址
常量参数(const):传值的方式传递参数,但参数值不可更改
外部参数(out):引用的方式传递参数,但参数初始值丢弃,只提供输出
注意:
(1)只有值参数必须明确类型,其他三种可有可无。
(2)开放数组类型:
function/procedure Name(Params1,Params2,...:array of ParamType)..;
Name([...,...,...]); //常量数组
Name(数组名);
2、函数调用模式保留字
说明:默认模式为register
保留字 | 参数调用顺序 | 栈(参数)清空方式 | 寄存器传递参数 |
---|---|---|---|
register | 左-->右 | 程序自动清空 | 是 |
pascal | 左-->右 | 程序自动清空 | 否 |
cdecl | 右-->左 | 调用者清空 | 否 |
stdcall | 右-->左 | 程序自动清空 | 否 |
safecall | 右-->左 | 程序自动清空 | 否 |
二、类与对象相关
1、类成员
field(域,F开头的变量)
|---procedure(过程)
method(方法)---------|
|---function(函数)
|---read
|---write
property(属性) -------|---stored
|---default/nodeault
|---implements
2、几个概念
类的变量:不是一个对象,而是一个指向具体类的对象的指针
类的对象:create构造方法创建的一个内存数据块
self:所有对象的方法中都有的一个隐含变量,由编译器作为隐含参数传递给方法
3、类特性
|---private(只对本类及派生类可见)
|---protected(只对本类及派生类可见)
封装性(存取控制符)---|---published(公有的,使用单元文件后即可用,对象观察器中的内容)
|---public(公有的,使用单元文件后即可用)
|---automated(公有的,自动化类型信息)
继承性:单根型继承,所有的类均发源于TObject
多态性(virtual、dynamic、abstract/override)
4、类方法及常用相关保留字
(1)类的方法有4种:static、virtual、dynamic和message。
(2)保留字的使用
static:默认
virtual:可被覆盖
dynamic:可被覆盖
override:覆盖父类virtual或dynamic方法,多态相关
abstract:抽象方法,没有实现代码,必须与virtual或dynamic配合使用
reintroduce:与重定义方法类似,但效率要高
overload:方法重载
message:消息处理