Public vs Private vs Protected Inheritance in C++ | CodeTrail