On 21 Dec 2010, at 00:16, Jonas Maebe wrote:
> On 20 Dec 2010, at 21:37, Sven Barth wrote:
>
>> - should abstract methods be forbidden?
>
> Yes, since
> a) they are virtual
> b) even if it were possible to have virtual methods, there would be no way to
> override them with implementations that do something (since you cannot
> inherit from a class helper)
Actually, it seems that inheritance is in fact allowed for Delphi-style class
helpers: http://qc.embarcadero.com/wc/qcmain.aspx?d=76577 (it's not for
Objective-C categories). But I'm still quite sure you cannot do anything that
requires changes to the VMT of the helped class.
There are also at some extra checks that must be added for
constructors/destructors introduced via class helpers (Objective-C/Pascal
doesn't have constructors or destructors, so it doesn't matter there):
*
http://docwiki.embarcadero.com/RADStudio/en/E2295_A_class_helper_cannot_introduce_a_destructor_(Delphi)
*
http://docwiki.embarcadero.com/RADStudio/en/E2296_A_constructor_introduced_in_a_class_helper_must_call_the_parameterless_constructor_of_the_helped_class_as_the_first_statement_(Delphi)
*
http://docwiki.embarcadero.com/RADStudio/en/E2358_Class_constructors_not_allowed_in_class_helpers_(Delphi)
Jonas
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel