覆盖和隐藏

void VBase::xfn(int i)
{
cout<<"Base::xfn(int i)"<<endl;
}


void VBase::yfn(float f)
{
cout<<"Base::yfn(float f)"<<endl;
}


void VBase::zfn()
{
cout<<"Base::zfn()"<<endl;

}


void Derived::xfn(int i) //覆盖了基类的xfn函数
{
cout<<"Derived::xfn(int i)"<<endl;
}


void Derived::yfn(int c) //隐藏了基类的yfn函数
{
cout<<"Derived::yfn(int c)"<<endl;
}


void Derived::zfn() //隐藏了基类的zfn函数
{
cout<<"Derived::zfn()"<<endl;
}


int _tmain(int argc, _TCHAR* argv[])
{
Derived d;


VBase *pB = &d;
Derived *pD = &d;


pB->xfn(5); //输出:Derived::xfn(int i)
pD->xfn(5); //输出:Derived::xfn(int i)


pB->yfn(3.14f);//输出:Base::yfn(float f)
pD->yfn(3.14f);//输出:Derived::yfn(int c)


pB->zfn(); //输出:Base::zfn()
pD->zfn(); //输出:Derived::zfn()


system("pause");
return 0;
}


//构成函数覆盖的条件为:

//1.基类函数必须是虚函数(使用virtual关键字进行声明)。

//2.发生覆盖的两个函数要分别位于派生类和基类中。

//3.函数名称与参数列表必须完全相同


//函数的覆盖是发生在派生类与基类之间,两个函数必须完全相同,并且都是虚函数。那么不属于这种情况的,就是隐藏了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值