我有一个关于使用全局变量和使用 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.
编译器如何为这两个变量分配内存?
最佳答案
这些变量的实现方式完全相同。 class var
被实现为全局变量。也就是说,模块中有一个静态分配的变量实例。
唯一的区别是 class var
位于不同的范围内,您可以使用 private
等可见性保护说明符来限制对变量的访问。
关于delphi - Delphi中全局变量和类变量的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21986202/