Page 1 of 1

Rule 11-0-1 and protected members

Posted: Mon Jul 03, 2017 3:42 pm
by tw39124
Rule 11-0-1 says that "Member data in non-POD class types shall be private" and the example clarifies that both "public" and "protected" members violate this rule. The rationale says "the implementation retains more control over how the object state can be modified".

I fail to see how protected members diminish the "control" over the object state that the implementation has. Can someone explain in more detail why protected member variables specifically are disallowed? A subtype has an "is-a" relationship with the base type, after all, so I don't see why it shouldn't benefit from inheriting the base type's member variables.

Re: Rule 11-0-1 and protected members

Posted: Wed Jul 12, 2017 2:17 pm
by misra cpp
It encourages strong partitioning and data hiding.

We will consider adding an exception for abstract classes in the next version