「クラス変数」はゼロに初期化されていますか?
-
20-08-2019 - |
質問
Delphi では、インスタンス変数とグローバル変数がゼロに初期化されることは知っています(これは 以前ここで質問した).
ただし、静的変数はどうなるでしょうか (class var
)?私は...するだろう 期待する クラス変数は、グローバル変数と同様に、ゼロに初期化されます。しかし、私はこれまで、実際に保証を述べたドキュメントがなく、それが動作すると仮定するにはまだ中途半端な新しい Delphi コンパイラ機能を数多く見てきました。
ヘルプには「class var」の索引エントリがありません。「フィールド」トピックではクラス フィールドについて言及していますが、プログラムの起動時に初期化されるかどうかは指定されていません。そして、それらを明示的に初期化するという明白な修正です(class var X: Integer = 0;
)、コンパイルされません (「';' が予期されましたが、'=' が見つかりました」)。
クラス変数はゼロに初期化されますか?これを明示的に記載した文書はありますか?
解決
私はそれを明示的に述べているドキュメントを知りませんが、クラス変数は単なる特殊なタイプのグローバル変数であり、グローバル変数はゼロになります。
所属していません StackOverflow