我有一个关于使用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.
编译器如何为这两个变量分配内存?
答案 0 :(得分:8)
这些变量以完全相同的方式实现。 class var
被实现为全局变量。也就是说,模块中有一个变量的实例,静态分配。
唯一的区别是class var
的范围不同,您可以使用private
等可见性保护说明符来限制对变量的访问。