???????????????????????????
????????????virtual?????????????????vTable??
?????????(???????????)????????????????vTable?????vTables??
??????????λ???????????????????У????????????????????????ο?
??????????????????????????????Animal??Cow??Pig??Donkey?????????????????????????????????????makeSound()??walk()????????????????4????????????vTable???С????8???????????

?????????????м????????????????????????Cow??Pig??Donkey??д??makeSound()?????????????дwalk()??????????????makeSound()????????jump?????????code Address????????walk()??????jump??Animal????walk??Code Address??
?????????
??????????????????????????????????????????????????????????????????????????????????????????????(vPointer)??
??????????????????????????????????????????????С?4???????????????Donkey????????????????????£?

???????????main?????????????£?
int main(int argc?? const char * argv[])
{
int count = 2;
while (count --) {
Animal *animal = new Donkey;
animal->makeSound();
delete animal;
}
return 0;
}
???????????????????????Donkey????????н?????£?
?????????
?????????
????Program ended with exit code: 0
???????????????????????????????????????????

?????????????????????????????