From section 10.3 Virtual Functions of C ++ 11 Standard (draft n3337), clause 2:
If the virtual vf member function is declared in the Base class and in the Derived class obtained directly or indirectly from Base, the vf member function with the same name, a list of parameter parameters (8.3.5), cv-qualification and refqualifier (or lack of the same) as Base :: vf, then Derived :: vf is also virtual (regardless of what is declared) , and it overrides Base :: vf.
So, Derived2::method also virtual , although it is not explicitly declared as such.
source share