[fpc-pascal] Initialization of class field
Sven Barth
pascaldragon at googlemail.com
Tue Jul 31 16:56:06 CEST 2012
On 31.07.2012 14:56, michael.vancanneyt at wisa.be wrote:
>
>
> On Tue, 31 Jul 2012, Krzysztof wrote:
>
>> Hi,
>>
>> I'm reading about variable initialization
>> (http://www.freepascal.org/docs-html/ref/refse22.html) . Can I
>> initialize class field too? Like in Java:
>>
>> type
>> TMyClass = class
>> private
>> FSomeField: Integer = 123;
>> end;
>>
>> I always initialize this in overrided constructor, but above example
>> is much faster.
>
> Object Pascal currently does not support this, except maybe for static
> class
> variables. The compiler people should confirm this.
It doesn't work in any case currently. You can post a feature request on
the bug tracker, but there is no promise that it will be implemented.
Regarding "fastness": Depending on how this feature would be implemented
it can be even slower than just setting the fields by hand in the
constructor: As the initializations need to be done by assigments
nevertheless they can either be done in an extra (hidden) method which
is called from all constructors of that class (leads to next topic:
inheritance) or the code to initialize the fields can be added to all
constructors; another possiblitiy would be to let NewInstance call the
compiler generated virtual "InitFields" method... in two of the three
possibilities one or more method calls (maybe even virtual) are involved.
Regards,
Sven
More information about the fpc-pascal
mailing list