This article is the first part of a five-part series about SOLID as-Rock design principle series. The SOLID design principles focus on developing software that is easy to maintainable, reusable &/extendable. In this article, we will see an example of the Single Responsibility Principle in C++ along with its benefits & generic guideline. The Principle states that classes should be cohesive to the point that it has a single responsibility, where responsibility defines as "a reason for the change"