[fpc-pascal] 2.1.1 new protected
Marc Weustink
marc at dommelstein.net
Sat Aug 12 12:55:03 CEST 2006
Martin Schreiber wrote:
> On Friday 11 August 2006 20.35, Marc Weustink wrote:
>>>> What's the alternative?
>>> To have most of internal procedures public with a comment "for internal
>>> use only", I really don't like it, or to have all code in a single file,
>>> I don't like it too.
>>> What about "friend units'?
>> Or something like as it is "solved" in delphi with helper classes (p215).
>> (Maybe we can also implement the strict version (p168))
>>
>> http://info.borland.com/techpubs/delphi/Delphi2006/Reference.pdf
>>
>
> It seems that FPC 2.1.1 implements the behaviour of Delphi 2006 'strict
> protected' by default.
I don't think so, the delphi 2006 strict syntax is more strict.
The example you gave below is (afaik) still possible in FPC, which
wouldn't if it was strict.
Marc
> In MSEgui I have the problem that there is too much low level stuff to fit in
> one unit and the dependences are too complex to be mapped into a simple class
> hierarchy. Up to time I did as follows to access low level elements of
> classes in other units:
> "
> implementation
> type
> TLowLevelClassInOtherUnit1 = class(TLowLevelClassInOtherUnit);
>
> procedure TLowLevelClassInThisUnit.DoSomething;
> begin
> TLowLevelClassInOtherUnit1
> (InstanceOfTLowLevelClassInOtherUnit).DoSomethingProtected;
> end;
> "
> It is ugly, produces warnings and is possibly forbidden in FPC 2.1.1 (I don't
> know). A more elegant solution would be to have something like 'friend units'
> where protected class members are visible:
> "
> unit secondlowlevelunit;
> interface
> uses
> firstlowlevelunit,highlevelunit;
> friends //use appropriate keyword and notation
> firstlowlevelunit;
> "
>
> -> In "secondlowlevelunit" all protected class members of "firstlowlevelunit"
> are visible, protected class members of "highlevelunit" are visible in
> descendant classes.
>
> Martin
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
More information about the fpc-pascal
mailing list