Private Inheritance

Private Inheritance

When a derived class inherits from a private base, the is-a relation between a derived object and its private base does not exist. For example:

 class Mem_Manager {/*..*/};class List: private Mem_Manager {/*..*/};void OS_Register( Mem_Manager& mm);void main() {  List li;  OS_Register( li ); //compile time error; conversion from List & to Mem_Manager& is inaccessible }

Private inheritance is like containment. In the example, class List has a private base, Mem_Manager, which is responsible for its necessary memory bookkeeping. However, List is not a memory manager by itself. Therefore, private inheritance is used to block its misuse.


Share the Post: