Alberto Narduzzi schrieb:
But often (depending on the compiler) the mere declaration
of an empty derived class allows to access protected members of the base
class.
What does depending on the compiler mean? The compiler is obviously FPC.
If it is really true that you can access protected members in that way
(like Svens message suggests) I consider this a bug.
Like Mattias said, protected is of no real use in that case and we can
just declare all non private members public.
I guess this must be considered a bug.
It's not a bug, it's a feature (of Delphi ;-)
You can indeed access protected
members of parent classes, but only from within the (your derived) class
members themselves, not from the outer world.
At least this I believe to e the meaning of having protected (me and my
friends only), together with public (everybody) and private (me and only
me).
Apropos "friends": the C++ visibility model is different from the Delphi
model. In Delphi classes the visibility applies to *unit level*, i.e.
*all* code in the same unit can access protected (and private?) members
of the declared classes. This behaviour can be modified with the later
added "strict private/protected" visibility, which applies to *class*
level. Similar to C++, where "friend" classes can be added to a class
declaration, a dummy declaration of a derived class makes all protected
members of the base class visible in the same *unit*. Similar but not
identical.
DoDi
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus