[fpc-pascal] RTFM question (?): which variables/fields are initialized by fpc?
Michael Van Canneyt
michael at freepascal.org
Sun Feb 22 13:06:06 CET 2015
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.
More information about the fpc-pascal
mailing list