On Sun, 22 Feb 2015, Bart wrote:
Hi, I cannot find it in the docs (probably not looking in the right place). Which variables/class-fields are initialized by the compiler? My understanding is that: - global vars are initialized (zero, false, empty string etc) - local vars are not But what about class fields? Typically I do type TA = Class private FInt: Integer; FBool: Boolean; FString: String; FPoint: TPoint; .... end; constructor TA.Create; begin FInt:=0; FBool:=False;; FString:=''; FPoint:=Point(0,0); ... end; 1. Is this necessary, and if not, for which types can it be omitted? (skip if you know 2)
It is not necessary. When a class is created, it's memory is zeroed out.
2. Where is it documented?
Good point. I looked for it, and it is not documented. I guess this should be added to section 6.1, will do so.
3. Does it work the same as in Delphi?
Yes. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal