非虚函数不会占用子类或者是对象中的内存,它的绑定由编译器来完成。
如果是该函数和调用它的程序同步编译,则在compile-time 绑定;
如果该函数是在动态库里面的,则在load-time绑定;
如果该函数是在静态库里面的,则在link-time绑定。
PS:动态链接库和静态链接库区别(摘自百度百科):
静态链接库是.lib格式的文件,一般在工程的设置界面加入工程中,程序编译时会把lib文件的代码加入你的程序中因此会增加代码大小,你的程序一运行lib代码强制被装入你程序的运行空间,不能手动移除lib代码。动态链接库是程序运行时动态装入内存的模块,格式*.dll,在程序运行时可以随意加载和移除,节省内存空间。 在大型的软件项目中一般要实现很多功能,如果把所有单独的功能写成一个个lib文件的话,程序运行的时候要占用很大的内存空间,导致运行缓慢;但是如果将功能写成dll文件,就可以在用到该功能的时候调用功能对应的dll文件,不用这个功能时将dll文件移除内存,这样可以节省内存空间。