用类方法简单实现对C++类静态成员变量的模拟(0分)

  • 主题发起人 lichengbin
  • 开始时间
L

lichengbin

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi中的类可以定义静态类方法,但却不能够定义静态类变量,这一直被许多从
C++转过来的Delphi开发人员认为是不可理解的。
本文简单地通过定义类方法,实现了相当于C++类静态成员变量的功能。

类定义如下:
type
TMyObject = class
public
class function Count(ACount: Integer = 1
ASetFlag: Boolean = False): Integer;
end;

类的实现:
{ TMyObject }

{$J+}
class function TMyObject.Count(ACount: Integer = 1
ASetFlag: Boolean = False): Integer;
const
SavedCount: Integer = 0;
begin
if ASetFlag then
SavedCount := ACount
else
Inc(SavedCount, ACount);
Result := SavedCount;
end;
{$J-}
通过TMyObject.Count函数中定义的静态局部变量的存储功能,实现了不同时候调用
Count函数返回不同值的结果。

测试代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := IntToStr(TMyObject.Count(StrToInt(Edit1.Text)));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.Text := IntToStr(TMyObject.Count(StrToInt(Edit1.Text), True));
end;
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
404
import
I
顶部