#include <iostream>
using namespace std;
class Animal{
public:
virtual void sound(){
cout<<"动物的声音"<<endl;
}
virtual void eat(){
cout<<"动物在吃鱼"<<endl;
}
};
class Cat:public Animal{
public:
void sound(){
cout<<"喵喵喵"<<endl;
}
void eat(){
cout<<"喵在吃鱼"<<endl;
}
};
void doSound(Animal& animal){
animal.sound();
}
void doEat(Animal& animal){
animal.eat();
}
void test01(){
Cat cat;
doSound(cat);
doEat(cat);
}
void test02(){
Animal* animal=new Cat;
((void(*)())(*(int*)*(int*)animal))();
((void(*)())(*((int*)*(int*)animal+1)))();
}
int main() {
test01();
return 0;
}