摘要:
可以看到,第一次调用的是B的f(),第二次我们交换了虚表中的内容,这样发生多态的时候,实际调用的函数是A::f()。
阅读全文
posted @ 2019-03-27 15:20
newbird2017
阅读(122)
推荐(0)
编辑
摘要:
class A{ public: virtual void f(){ cout f(); //发生了多态,这里调用的是B::f()。因为有upcast,所以是多态。 a = b; //这里只是完成了一个赋值操作 p = &a; p->f(); //调用的是A::f() return 0; }
阅读全文
posted @ 2019-03-27 14:12
newbird2017
阅读(116)
推荐(0)
编辑
摘要:
多重继承情况下,看父类有没有虚函数。 sizeof(A) = 8 sizeof(B) = 8 sizeof(C) = 16 在我的64位机器上这个结果。也就是,保存了两个虚表。 接下来这种,sizeof(A) = 8, sizeof(B) = 1, sizezof(C) = 8。只保存了一个虚表。
阅读全文
posted @ 2019-03-27 10:42
newbird2017
阅读(134)
推荐(0)
编辑