在C++中,我们可以用static来声明一个属于类而不是类的某个具体实例的函数。许多人以为Object Pascal没有类似的功能,其实是有的,只要将函数声明为类方法(class procedure或者class function)就可以了。例如:TForm1=class(TForm)public class procedure T;end; implementationclass procedure TFomr1.T;beginend; 你可以在项目文件中验证它是不是真的static:begin TForm1.T; Application.Initialzie; Application.CreateForm(TForm1,Form1); Application.Run;end; class procedure/class function在VCL中也是相当重要的一类特殊方法。TObject的ClassName,ClassNameIs,ClassPoint,ClassInfo这四个方法全都是class function。虽然你在实际的编程中99.99999999999%的时间都不会用到它们,不过这四个函数堪称构筑整个VCL的基石。 值得一提的是,与C++中的static member function不同,Object Pascal中的class method能够具有多态的性质。例如,ClassName是TObject的一个class method,但是你调用TForm.ClassName得到的就是'TForm',调用TButton.ClassName得到的就是'TButton',等等。静态方法能够做到多态,岂不是非常神奇?这一切都是通过RTTI才做到的。你可以想象,如果ClassName用一般的virtual method来声明的话,就必须在每个派生类中都必须重载它才能实现类名称的正确映射,那将是多么痛苦的一件事情。
=-----------
关于其他的看Delphi的书就又介绍了,上面的一般的书是没有的,在E文技术站点可以找到
=-----------
关于其他的看Delphi的书就又介绍了,上面的一般的书是没有的,在E文技术站点可以找到
解决方案 »
- 有谁在D2007上成功安装 ExpressPrinting的?我安装出错了。
- DBGrid中,朋友们帮看看...
- 求助strtocurr精度问题,非常急!
- IMAGE好像只能放JPG图片,我想放png行不?
- 急聘 delphi+sqlServer , 实际工作经验一年以上。学历无要求。年龄无要求。
- 谁帮处理一下谢谢
- 如何通过异或获取数据
- tcxtreelist 每个 node设置不同properties 有人解决吗?QQ281482913 在线等!
- 求助:如何巴activeX控件从toolbar上弄走?
- 我有个DBEDIT,想显示日期,但不想自己手工输入,想点击框右边的一钮马上显示象个月历表样的日期,很方便的选择,不知各位大侠,能否教小
- 这几天都很郁闷 散散分吧 连同结不掉的帖子一起散掉 一共300 请斑竹手下留情 -_-#
- 这个dll的加栽是怎么高的!?
Obj=Class
private
...
public
...
end;
{Impliment}
end.