原文地址: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类对象的内存区域,所以调用方法的时候会根据这片内存记录的函数地址进行调用,多态就是这么实现的。
注:摘录完毕
阅读(1016) | 评论(0) | 转发(0) |