Delphi中实现C++/Java类似静态变量的功能
2005-04-23 20:17
926 查看
在网上看到很多人都在为Delphi是否支持C++/Java中的静态变量及静态方法的功能而困扰,其实这在Delphi中是很简单的.
静态方法就是使用Class Function. 静态变量则使用单元局部变量来实现. 代码如下:
静态方法就是使用Class Function. 静态变量则使用单元局部变量来实现. 代码如下:
//========================================= // StaticVarTestU - 定义了可以计数的类,通过类方法即可访问此类的对象数 //========================================= unit StaticVarTestU; interface type TStaticVarClass = class public //constructor constructor Create(); destructor Destroy; override; //类方法,取得对象的计数 class function ObjectCount: integer; protected private end; implementation Var LObjCount: integer; { TStaticVarClass } constructor TStaticVarClass.Create; begin inc(LObjCount); //使用局部变量 end; destructor TStaticVarClass.Destroy; begin dec(LObjCount); //使用局部变量 inherited; end; class function TStaticVarClass.ObjectCount: integer; begin Result := LObjCount; //返回局部变量 end; initialization LObjCount := 0; //初始化 finalization LObjCount := 0; end. //========================================= // StaticTest - 测试代码,创建10个对象,并访问其计数,再Free掉. //========================================= program StaticTest; {$APPTYPE CONSOLE} uses SysUtils, Classes, StaticVarTestU in 'StaticVarTestU.pas'; procedure printObjCount; begin WriteLn(Format('The Object Count now is %d', [TStaticVarClass.ObjectCount])); end; var i: integer; mObjList: TList; begin { TODO -oUser -cConsole Main : Insert code here } mObjList := TList.Create; printObjCount; for i := 0 to 10 do begin mObjList.Add(TStaticVarClass.Create()); printObjCount; end; for i := 0 to mObjList.Count -1 do begin TStaticVarClass(mObjList.Items[i]).Free; printObjCount; end; mObjList.Free; readln; end.请大家指正....
相关文章推荐
- Delphi中实现C++/Java类似静态变量的功能
- Java中静态变量与实例变量的区别 静态变量活用实现类似session的功能
- Java实现类似C/C++中的__FILE__、__FUNC__、__LINE__等,主要用于日志等功能中。
- C++中实现类似java中接口的功能
- C++实现类似JAVA反射的基本功能
- 用C++实现类似JAVA类中的toString函数
- java如何实现类似c语言的条件汇编功能
- Java实现类似C/C++中的__FILE__、__FUNC__、__
- java中类似c++ goto功能---------label简介
- 需求:iOS自定义protocol与delegate来实现类似java的接口回调功能
- JAVA内部类实现多重继承父类[实现类似C++的多重继承功能]
- 用C语言写一个数组,实现类似JAVA语言中ArrayList的功能
- 补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
- C++:模拟实现类似<time.h>的计时功能
- java实现类似函数指针功能
- 在java中实现类似c语言中goto的功能
- JAVA--实现类似C#输入功能的Console类
- c#控件实现类似c++中ocx控件功能,Event事件
- Java实现类似C/C++中的__FILE__、__FUNC__、__