[fpc-pascal] Implementing a true Singleton - Can we decrease the visibility of a method?
Andreas Berger
Andreas at TheBergerClan.org
Fri Dec 8 14:39:41 CET 2006
Graeme Geldenhuys wrote:
> On 12/8/06, TOndrej <tondrej at gmail.com> wrote:
>> On 12/8/06, Graeme Geldenhuys <graemeg.lists at gmail.com> wrote:
>> > I still don't know why we can't decrease visibility in Free Pascal.
>> > Is there some internal language design that prevents it?
>>
>> A class definition (or at least its parts visible from outside) can be
>> understood as a kind of contract. If you have a class TDog with a
>> public property Tail then, by definition, any TDog descendant
>
> I understand your example and that makes sense, but would be handy in
> certain cases to change it.
A TBoxer could be considered a TDog without a tail :)
>
>> I'm not even sure if there is a language which allows demoting
>> visibility of inherited class members. It would seem odd to me. Just
>> my 2c, of course. ;-)
>
> C++, C#, VB.Net are three I know of. I think Java also allows it.
Yes, but that causes other problems. I worked for a time for a company
that wrote programs for aeronautical equipment. In these cases the above
mentioned languages could not be used. C was ok, and C++ could only be
used if you followed very strict rules (and a lint program to guarantee
you were following the rules). Pascal however had far fewer restrictions
(almost none if I remember correctly). Modula-2 could be freely used. If
we relax the Pascal rules we will end up with a non-secure language like
the above.
More information about the fpc-pascal
mailing list