I have some source code in C++, which I need to understand and extend / modify. According to the documentation some classes are planned as base and derived classes to implement an inheritance mechanism. When I look into source code, the derived class is not derived from the base class but it has a pointer to the base class as a private member. As far as I understand, inheritance is an is-a relationship and the implementation is just wrong. But I am fairly inexperienced with object oriented concepts and I might be missing something. Is there a reasonable explanation / scenario why you would implement inheritance using a has-a relationship?