"Класс Var" инициализируется на ноль? - PullRequest
11 голосов
/ 26 июня 2009

Я знаю, что в Delphi переменные экземпляра и глобальные переменные инициализируются равными нулю (об этом спрашивали здесь раньше ).

Однако как насчет статических переменных (class var)? Я бы ожидал, что класс * vars * будет инициализирован равным нулю, как глобальные переменные. Но я видел слишком много новых функций компилятора Delphi, которые все еще не были готовы, чтобы предположить, что он работает, без документации, которая фактически заявляет гарантию.

В справке нет индексной записи для "class var". В разделе «Поля» упоминаются поля классов, но не указывается, инициализируются ли они при запуске программы. И очевидное исправление, состоящее в их явной инициализации (class var X: Integer = 0;), не компилируется (";" ожидается, но "=" найдено ").

Переменные класса инициализируются нулем? Есть ли документация, в которой это прямо указано?

1 Ответ

6 голосов
/ 26 июня 2009

Мне неизвестна какая-либо документация, в которой это явно указано, но классовые переменные - это просто особый тип глобальной переменной, и глобальные переменные обнуляются.

...