多态的实现原理分析 当类里有一个函数被声明成虚函数后,创建这个类的对象的时候,就会自动加入一个__vfptr的指针, __vfptr维护虚函数列表.如果有三个虚函数,则__vfptr指向的是第一个虚函数, __vfptr+1指向的是第二个虚函数,__vfptr+2指向的是第三个虚函数. 当子类覆盖了父类的虚函数后,__vfptr+n就不是指向父类的虚函数了,而是指向的子类的函数. 所以当我们用父类的指针或者引用去调用被覆盖的虚函数时,才能够调用到子类的函数. 1.成员函数加上virtual修饰后…