Использование переменных global и переменных класса в 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

Эти переменные реализуются точно так же. class var реализуется как глобальная переменная. То есть есть один экземпляр переменной в модуле, выделенный статически.

Единственное отличие состоит в том, что class var находится в другой области видимости, и для ограничения доступа к переменной вы можете использовать спецификаторы защиты видимости, такие как private.