C++类继承有关问题,编译没有关问题,但运行结果不是正确的

C++类继承问题,,编译没问题,但运行结果不是正确的
#include <iostream.h>
class Animal{
public:
Animal *p;
Animal(){
p=this;
}
void breath(){
cout<<"Animal breath"<<endl;
}
void breat(){
cout<<" breath"<<endl;
}

};
class Fish:public Animal{
public:
Fish(){
}
void breath(){
cout<<"Fish breath"<<endl;
}
};
Fish ob;
void main(){
cout<<ob.p<<endl;
cout<<&ob<<endl;
ob.breath();
ob.p->breath();

}
this指针不应该是指向Fish类对象的吗?可程序运行结果却是指向Animal对象,,这是怎么回事了,大神们帮忙看看吧
c++ 继承

------解决方案--------------------
在没有虚函数的情况下, 基类指针, 就访问的基类版本的函数, 这个没有什么话说得.