Protected Inheritance Bug

Protected Inheritance Bug

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.


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

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.


Share the Post: