Using public inheritance with two classes that do not fully comply with the is-a relation (although they are related to one another) is a common design mistake. For example, deriving class Stack from class List may indicate a design flaw. A stack is not a list. Both classes support some common operations, yet using public inheritance is too strong a statement about the relationship between the two. Such improper inheritance relations can result in serious maintenance problems. In this case, private inheritance–or better yet, a simple containment relation–would be more suitable.


GM Creates Open Source uProtocol and Invites Automakers to Adopt It: Revolutionizing Automotive Software Development.
General Motors (GM) recently announced its entry into the Eclipse Foundation. The Eclipse Foundation is a prominent open-source software foundation. In addition, GMC announced its contribution of “uProtocol” to facilitate