c++ 中虚函数的实现:
1.每创造一个带虚函数的类,就创建一个vtable,vtabel是对应类的,同一个类的所有对象共享同一虚函数表,在继承时,继承父类的虚函数表,同时加上自己的虚函数,并把覆盖的替换为自己的
2.虚函数表实际上就是函数指针的数组,调用虚函数时,不是直接调用,先根据vptr找到对应的虚函数表,再在虚函数表中找到对应的函数指针,然后调用。多重继承
虚函数的优缺点:
优点:多态,便于逻辑封装,接口统一
缺点:
1.性能下降,普通成员函数,调用时直接调用,虚函数调用时,先根据vptr找到虚函数表,再找到虚函数指针,再找到虚函数代码,,
2.安全性