#include<iostream>usingnamespace std;classA{public:virtualvoidprint()=0;virtualvoidpp()=0;};classB:public A
{public:virtualvoidprint(){ cout <<"hehe"<< endl;}virtualvoidpp(){};};intmain(){
B b;return0;}
4.多态的原理
虚函数表:存放虚函数指针,是一个函数指针数组;
派生类会拷贝一份基类的虚函数表,如果重写了函数就替换掉这个指针,更新虚表;
虚函数和普通函数一样,存在代码段;
虚表存在哪里可能跟平台有关,vs虚表也存在代码段;
对象中只包含一个虚表指针,方便去找到虚函数表;
#include<iostream>usingnamespace std;classA{public:virtualvoidFun1(){
cout <<"Fun1()"<< endl;}virtualvoidFun2(){
cout <<"Fun2()"<< endl;}virtualvoidFun3(){
cout <<"Fun3()"<< endl;}};classB:public A
{public:virtualvoidFun1(){
cout <<"Fun1()"<< endl;}};intmain(){
A a;
B b;return0;}