原文地址:c.biancheng.net/cplus/c2cpp
自己不咋熟c ,需要观摩学习下。
https://blog.csdn.net/brewin/article/details/79249609
注意原理的描述:
编译器会把虚表编译成上面的样式,注意两件事情:
第一, 虚函数表在类所有成员的最前面。
第二, 第二,sub因为重写了tostring,sub的虚函数表就记录者sub的tostring的地址。
上面的程序super* s = new sub();
s实际指向的是sub类对象的内存区域,所以调用方法的时候会根据这片内存记录的函数地址进行调用,多态就是这么实现的。
注:摘录完毕
阅读(768) | 评论(0) | 转发(0) |