Michael Van Canneyt schrieb:
So what's the special use of a *class* property? If it exists for
Delphi compatibility only, why then is it handled differently from
"property"?
The reason is explained in the upcoming docs.
Namely: a static method cannot be overridden.
Sure, but virtual methods (including class methods) can be overridden.
The class property is part
of this particular class, and descendent classes should not be able to
override it's behaviour.
A static class method can call another virtual class method, so this
protection looks very artifical to me.
BTW Delphi XE allows to call a virtual class method, but when called
from a static class method it calls it like a static method, overrides
are simply ignored. Calling the same method directly honors overrides.
Also "self" is no more known inside class methods in XE. In D7 it was
the class type instead of the instance pointer. Thus a too restrictive
compiler, geared towards compatibilitiy with *new* Delphi versions, may
break existing code.
DoDi
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel