SOLID Design: Dependency Inversion Principle in C++ is the fifth & last design principle of a series SOLID as a Rock design principles. The SOLID design principles focus on developing software that is easy to maintainable, reusable & extendable. In this article, we will see an example code with the flaw & correct it with help of DIP. The code snippets you see throughout this series of articles are simplified not sophisticated not sophisticated. I also consider myself a pragmatic person who wants to convey an idea in the simplest way possible.