devxlogo

Protected Inheritance Bug

Protected Inheritance Bug

Question:
What is the standard rule on access specifiers associated with superclasses?

Old C++ compilers would not allow protected superclasses. But, the book I’ve read about OOAD allows it.

Example:

  class a {};  class b: protected a {}; // invalid on                           // old c++                             // compilers!

Answer:
You’ve bumped into a compiler bug. A class can be inherited as public, protected or private base. My advice is to get of rid of this compiler or at least upgrade it. If it can’t support such a fundamental feature, I’m pretty sure it’s replete with other bugs and incompatibilities.

devx-admin

Share the Post: