Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Beginner
Jan 18, 1999

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.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.