What does protected mean?

Regan Heath regan at netmail.co.nz
Thu Jul 5 02:00:24 PDT 2007


Kirk McDonald Wrote:
> Ald wrote:
> > I was writing a module with several classes, and found out that classes in the same module can access each other's private methods and even members.
> > 
> > Is this by design?  If so, then what is protected modifier for?  I have read the manual, but didn't understand the difference.
> 
> Yes: Everything in the same module has an implicit "friend" 
> relationship, and they can access each other's private stuff. This is 
> entirely by design, and replaces C++'s explicit "friend" stuff.
> 
> Otherwise, protected means what it does in many other languages. If 
> something is private, then nothing outside the class (except for things 
> in the same module) can access it, not even subclasses of the class. 
> Protected, on the other hand, is just like private, except it grants 
> access to subclasses.

To be utterly pedantic;  it's only relevant for subclasses in another module, because the ones in the same module have 'friend' access.

Regan


More information about the Digitalmars-d-learn mailing list