Aah, right. Class methods I have used in past projects, but my understanding is that, in these instances, Self can still be accessed, but represents the class rather than the object, can be called without an instantiated object, and still have the issues that they can be virtual and overridden (something i'm disallowing with pure functions because of the initial complexity of determining which version of a method to call).
Can you clarify, Sven, with "static" and "class"? Gareth aka. Kit On Sat 28/07/18 23:11 , "Dmitry Boyarintsev" skalogryz.li...@gmail.com sent: These are known as “class” methods (rather than “static”) in object pascal. Thanks,Dmitry On Saturday, July 28, 2018, J. Gareth Moreton wrote: Aah, right. I'm probably being rather dumb here from not having used them before, but do you mean things like this? type TNewClass = class function Special: Boolean; static; end; I gather you can't access Self in such methods. Gareth aka. Kit On Sat 28/07/18 20:37 , "Sven Barth" pascaldra...@googlemail.com sent: J. Gareth Moreton schrieb am Sa., 28. Juli 2018, 19:34: I did wonder about that, but wasn't sure how it would affect things where inheritance is concerned. I dare ask, do you have an example of a class method that you would consider pure? They don't have inheritance. If they have the modifier "static" they really are simply scoped functions or procedures. They can even be assigned to non-"of object" procedure variables. Regards, Sven
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel