MISRA Discussion Forums

Full Version: Rule 11-0-1 and protected members
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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.
It encourages strong partitioning and data hiding.

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