In C++, I can\'t think of a case in which I would like to inherit private/protected from a base class:
class Base;
class Derived1 : private Base;
class Deri
I've used both private and protected inheritence at one point or other.
Private inheritence is useful when you want something to have the behaviour of the base class, and then be able to override that functionality, but you don't want the whole world to be aware of it and use it. You can still use the interface of a privately derived class by having a function return that interface. It's also useful when you can have things register themselves to listen for callbacks as they can register themselves using the private interface.
Protected inheritence is especially useful when you have a base class that derives useful functionality from another class but you only want its derived classes to be able to use it.