#include<iostream.h>
class Animal{
public:
Animal(){
// cout<<"Animal Constructor........"<<endl;
}
~Animal(){
// cout<<"Animal Destructor........."<<endl;
}
public:
void eat(){
cout<<"animal eating........."<<endl;
}
void sleep(){
// cout<<"animal sleeping......."<<endl;
}
//C++虚函数
public:
virtual void breath(){
cout<<"animal breathing......"<<endl;
}
};
class Fish : public Animal{
public:
Fish(){
//cout<<"Fish Constructor.........."<<endl;
}
~Fish(){
// cout<<"Fish Destructor..........."<<endl;
}
void test(){
breath();
}
void breath(){
cout<<"Fish bubbule........"<<endl;
}
};
void main(){
//Animal animal;
//animal.eat();
//Fish fish;
//fish.breath();
Animal * animal;
Fish fish;
animal=&fish;
//如果父类有虚函数存在 子类必须实现父类的虚函数
//子类的实现虚函数 属于后期绑定 也就是在程序运行时才
//会检查对象的类型 这样此处最后指向的对象是Fish
animal->breath();
}
转载于:https://blog.51cto.com/zhunixingfu/1587082