在Delphi中使用变量global和class的变量

时间:2014-02-24 11:17:42

标签: delphi

我有一个关于使用class var使用全局变量和类变量的问题。

使用class var

在类中声明变量
unit Unit1;

interface

type
  TClass = class
  public
    class var ObjectList: TObjectList
  end;

implementation
end.

声明全局变量:

unit Unit1;

interface

var
  ObjectList: TObjectList

implementation
end.

编译器如何为这两个变量分配内存?

1 个答案:

答案 0 :(得分:8)

这些变量以完全相同的方式实现。 class var被实现为全局变量。也就是说,模块中有一个变量的实例,静态分配。

唯一的区别是class var的范围不同,您可以使用private等可见性保护说明符来限制对变量的访问。