Thank you for this message! This stuff sounds really cool. In particular, I have been itching for class constants.
A few questions come to mind: a. 'var' sections -- I assume that 'var' is optional when declaring fields that occur first (i.e. directly after "private", "public", etc) b. What does "strict private" mean, as opposed to private without strict? (My best guess is that it would be accessible only within the methods+properties of that class within the unit, as opposed to being available anywhere in the same unit where the class is declared...???) c. What is the purpose of a class method? It would seem to me that methods should do the same thing whether they are class methods or not. Traditional variables change from instance to instance, but methods do not vary between instances, as far as I know-- right? d. What happens with inheritance? d.1. wrt class constants and class vars-- are there separate "instances" (for lack of a better word) of these, one instance for each descendant? Or is the class var/const only stored once for the ancestor that declares it, and all descendants share that? d.2. wrt class methods, can they be virtual? (This strikes me as being closely related to d.1) I guess an example is in order for d: type t_parent = class private class var x : integer; const c = 5; end; t_child = class (t_parent) private const c = 7; // can I do this? end; If I change t_child.x will it change t_parent.x? e. Is it available in {$mode objfpc}? (I hope I hope I hope)? I'd love to test this stuff out, though I usually stick with release versions... perhaps this is what is needed for me to take the plunge! Either way, I'm looking forward to this being released. Great work. Cheers, David On Wed 13 Jan 2010, Paul Ishenin wrote: > Hello, FPC-Pascal users discussions > > I want to notify you that fpc trunk has extensions for the class syntax. > > Class can have now the next sections: > > 1. 'var' sections to start regular fields declaration. 'var' can be used > after other sections and after methods > 2. 'class var' sections to start static fields declaration. Fields > delcared in the 'class var' section are static fields > 3. 'type' sections to declare types local to a class. It is allowed now > to declare nested classes too. > 4. 'const' section to declare constants local to a class. > 5. 'class property' - similar to regular property but works with static > fields and methods > > Some examples: > http://wiki.lazarus.freepascal.org/class_extensions_examples > > Please test and report bugs found. > > Best regards, > Paul Ishenin. > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal