Question:
Why would a call to a virtual function execute slower than a call to a non-virtual function?
Answer:
Because the call is resolved through an additional level of indirection?instead of going directly to the address of the function’s text and execute it (this is how non-virtual functions are resolved)?the runtime environment first must lookup the address of the virtual function in a table, and only then can it call that function. This lookup adds slight runtime overhead.