[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