Инициализируются ли «class var» нулями?
-
20-08-2019 - |
Вопрос
Я знаю, что в Delphi переменные экземпляра и глобальные переменные инициализируются нулем (это было спрашивал здесь раньше).
Однако как насчет статических переменных (class var
)?Я бы ожидать переменные класса должны быть инициализированы нулем, как и глобальные переменные.Но я видел слишком много новых функций компилятора Delphi, которые были еще недоработанными, чтобы можно было предположить, что они работают, без документации, в которой фактически указаны гарантии.
В справке нет индексной записи для «класса var».В разделе «Поля» упоминаются поля классов, но не указывается, инициализируются ли они при запуске программы.И очевидное решение - их явная инициализация (class var X: Integer = 0;
), не компилируется («;» ожидалось, но «=» найдено).
Переменные класса инициализируются нулем?Есть ли документация, в которой это прямо указано?
Решение
Мне не известна какая-либо документация, в которой бы это прямо указано, но переменные классов — это всего лишь особый тип глобальных переменных, а глобальные переменные обнуляются.