Just went through this link virtual table and _vptr
It says that the workflow will be like ..
base_ptr->base_vptr----> to check the access of virtual function in base class.
base_ptr->derived_vptr->virtual_function()---> to call/invoke the virtual function.
Hence the derived class virtual function is called.. Hope you find it helpful.