您的位置 首页 电子

C++子类掩盖基类及virtual虚拟处理

includeiostreamh>classanimal{public:animal(){coutanimalconstructendl;}~animal(){coutconstructanim

#include

class animal
{
public:
animal()
{
cout<<"animal construct"<
}
~animal()
{
cout<<"construct animal"<
}
virtual void breath() //virtual界说虚函数
{
cout<<"bubble2"<
}
};
class fish:public animal //只调用animal中的animal()
{
public:
fish()
{
// cout<<"hello world"<
}
~fish()
{
// cout<<"construct helllo world"<
}
void breath()
{
//animal::breath();
//cout<<"fish bubble"<
}
};
void fn(animal *pan)
{
pan->breath();
}
void main()
{
fish fh;
//st.breath ();//假如子类和基类有两个同名函数,则最后用子类掩盖基类,这叫重载。
animal *pan;
pan=&fh; //改动指针,把animal的指针用fish替换了。可是仍是输出animal。若在animal前加virtual虚拟,则输出fish
fn(pan);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/317588.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部