delphi一些不是很重要的技巧
1.把整型指针转换字符指针
var a:^integer; 是声明一個integer的指针 而不是一個integer
差別在var b: integer ;
希望下面的sample能將我的意思更容易理解
var a:^integer;
begin
我认为最好还是不要把一个整型指针转换成字符串指针,这样会引起内存混乱!
2. 集合和枚举有什么区别,什么时候使用集合,何时使用枚举?
3.继承(inherited)的用法?
是指一个新的对象能够从父对象中获取属性和方法,这种概念能用来建立vcl这样的多层次的对象,首先建立通用对象,然后创建这些通用对象的有专用功能的字对象。继承的好处是能共享代码。
多继承是指一个对象能继承两个不同的对象,并且包含有两个父对象的所有数据和代码,object
static 表示是静态方法;静态方法是方法的缺省类型,不能被覆盖;
virtual 表示是虚拟方法;
dynamic 表示是动态方法;
这两类方法的共同点是都可以被覆盖(override),区别仅在于运行时调用方法时的派发机
制,virtual方法为执行速度做了优化,而dynamic方法则为代码大小做了优化;经常被覆盖的
方法应该定义为virtual方法;
用消息处理方法来响应Windows的消息,这样就不用直接来调用它;
override 表示是覆盖方法;要求祖先类中必须有该方法的定义,并且参数的顺序和类型
及返值的类型必须匹配;用于扩展祖先类中的该方法而不是取代它(如不调用祖先类中的该方
法则等同于取代);
overload 表示是重载方法;用于一个类中有许多同名的方法带着不同的参数表的情形;
(属性的读写方法不能被重载);
在abstract前面必须有virtual或dynamic关键字,其实现部分在派生类中;如
procedure DoSomething; virtual; abstract;
reintroduce表示是重新声明的方法;用于方法的名称与祖先类中的某个方法名称相同的情形;
virtual 和 dynamic定义的虚函数,都是为了子类override用的,
只不过它们的实现不一样
vitrual 占用的空间大点,但速度快些。dynamci正好相反