Non virtual functions get linked statically. I.e. their addresses along with machine code of ‘CALL’ assembly instruction are placed to make/resolve method call. However, to resolve virtual methods, compiler creates a table called VTABLE and puts address of all the virtual methods in it. With the help of this table, calls to appropriate method get resolved at runtime. Compiler places code to fetch the address of virtual method from VTABLE to make a call to the virtual method.