views:

192

answers:

1

I know that, in Delphi, instance variables and global variables are initialized to zero (this has been asked here before).

However, what about static variables (class var)? I would expect class vars to be initialized to zero, just like global variables. But I've seen too many new Delphi compiler features that were still half-baked to assume that it works, without documentation that actually states a guarantee.

The Help has no index entry for "class var". The "Fields" topic mentions class fields, but does not specify whether they're initialized at program startup. And the obvious fix, of explicitly initializing them (class var X: Integer = 0;), doesn't compile ("';' expected but '=' found").

Are class variables initialized to zero? Is there documentation that explicitly states this?

+3  A: 

I'm not aware of any documentation that explicitly states it, but class vars are just a special type of global variable, and globals get zeroed.

Mason Wheeler