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