C++中虚函数使用和详解
虚函数是什么:
virtual + 函数 : 这样的函数是虚函数 ,该函数和普通函数没有啥区别,就是虚函数的地址放在虚函数表中(虚函数表在基类部分首部),实现动态绑定。基类和派生类的虚函数,函数名,参数类型,参数数量必须相同
虚函数功能是什么:
派生类继承基类的相关函数,这些函数的功能需要重新定义,但是基类和派生类调用起来不方便,常用的方式是在基类函数前加上virtual关键字则派生类中定义的该函数(函数名,参数类型,参数数量相同)也是虚函数。然后调用相关方法。
虚函数表:
Class A{
public:
virtual void function();
virtual void functionb();
int a;
int b;
}
Class B : public Class A
{
public:
virtural void function();
int c;
}
Class C:public Class B
{
public:
virtual void functionb();
}
A,B,C三个类的虚函数表如下:
虚函数的动态绑定:
对象经过编译器编译后,虚函数表中保存虚函数的地址,当对象调用虚函数的时候,会到虚函数表(基类中)中找到相应的虚函数,实行动态绑定。