C++虚函数表只有在C++中使用面向对象编程时才会用到;
一般,设计作为基类的类,其中必会声明虚函数,设
class Base
{
pubilc:
Base();
virtual a();
......
}
那么,Base类会维护一个虚表,同时有一个虚表指针指向该虚表,虚表的内容就是虚函数的入口地址,此处是a;
那么当继承Base时:
class Child: public Base
{
pubilc:
Child();
a();
}
Child类继承了Base,同时也继承了Base的虚函数表,这里要注意,在Child类中,a函数仍然是虚函数!!!虽然它没有virtual关键字。
好了,Child类此时会将继承过来的虚函数表中,父类的a函数的地址替换为自己的,后面,对象就可以根据自身携带的虚表,来决定调用哪个a函数啦。

被折叠的 条评论
为什么被折叠?



