C++ is a predominant Object-Oriented programming language, according to a large popular belief. And, according to the same belief, inheritance is the best tool to write good C++ code.
But, in reality, this is far from the truth. Not only C++ is not a predominant OO language, but inheritance, as it is advertised mainstream, fails to deliver its promises. C++ programmers often overuse, misuse and sometimes abuse inheritance.
This talk approaches inheritance critically from multiple perspectives. It tries to cover some fundamental problems that inheritance has. It looks at inheritance from different perspectives and exposes inconsistencies between the common belief and how inheritance can work. Finally, the talk provides tips on when to use inheritance and when to avoid it.