请注意,在这个继承关系中,子类没有重载任何父类的函数。那么,在派生类的实例中,
其虚函数表如下所示:
对于实例:Derive d; 的虚函数表如下:
图 3
我们可以看到下面几点:
1
)
虚
函
数
按
照
其
声
明
顺
序
放
于
表
中
。
2
)父类的虚函数在子类的虚函数前面。
我相信聪明的你一定可以参考前面的那个程序,来编写一段程序来验证。
一般继承(有虚函数重载)
重载父类的虚函数是很显然的事情,不然,虚函数就变得毫无意义。下面,我们来看一下,
如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?假设,我们有下面这样
的一个继承关系。
图 4
为了让大家看到被继承过后的效果,在这个类的设计中,我只重载了父类的一个函数:
f()。那么,对于派生类的实例,其虚函数表会是下面的一个样子: