Is derive of derive class actually can override protected virtual function of base class? Example, Class b{ Protected : virtual void hello() } Class c : b{ void hello() override{} //override b's hello } Class d : c{ void hello() override {} //legit?? }