deep_c++::多态,虚函数的一点理解

来源:互联网 发布:微软 azure认证 知乎 编辑:程序博客网 时间:2024/05/10 21:27



我们从表中可以看到下面几点,

1)覆盖的f()函数被放到了虚表中原来父类虚函数的位置。

2)没有被覆盖的函数依旧。

这样,我们就可以看到对于下面这样的程序,

Base *b = new Derive();

b->f();



对于子类实例中的虚函数表,是下面这个样子:

我们可以看到:

1) 每个父类都有自己的虚表。

2) 子类的成员函数被放到了第一个父类的表中。(所谓的第一个父类是按照声明顺序来判断的)

这样做就是为了解决不同的父类类型的指针指向同一个子类实例,而能够调用到实际的函数。



http://blog.csdn.net/haoel/article/details/1948051/


此文还需要仔细的,好好的再看一遍。


0 0
原创粉丝点击