How are virtual functions implemented in C++?

Virtual functions in C++ used to create a list of base class pointers and call methods of any of the derived classes without even knowing kind of derived class object. Virtual functions are resolved late, at runtime.

Here is an implementation of virtual function in C++ program −


#include <iostream>
using namespace std;
class B {
      virtual void s() { //virtual function 
         cout<<" In Base \n";
class D: public B {
      void s() {
         cout<<"In Derived \n";
int main(void) {
   D d; // An object of class D
   B *b= &d; // A pointer variable of type B* pointing to d
   b->s(); // prints"D::s() called"
   return 0;


In Derived