覆盖和隐藏
2016-03-07 17:20
323 查看
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.函数名称与参数列表必须完全相同
//函数的覆盖是发生在派生类与基类之间,两个函数必须完全相同,并且都是虚函数。那么不属于这种情况的,就是隐藏了。
{
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.函数名称与参数列表必须完全相同
//函数的覆盖是发生在派生类与基类之间,两个函数必须完全相同,并且都是虚函数。那么不属于这种情况的,就是隐藏了。
相关文章推荐
- CentOS使用wget命令报错Temporary failure in name resolution解决方法
- HTML你应该知道的三大基本元素
- [原创]配置Dev c++热键实现快速注释
- dig命令
- bananapi之D1配置
- NSSet如何转成NSArray
- 小马哥---高仿苹果6sp 型号Q65 芯片6582 2016新版刷机拆机主板图与开机界面图
- json
- 产品人的三个层次——老吴说产品
- 【慕课笔记】4-1 字节流之文件输入流FileInputStream
- 并发编程之避免死锁
- 什么是依赖注入
- Tomcat根目录下work文件夹的作用
- Datazen 自定义地图--中国地图
- 2016/03/07 codes
- 关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)
- MySQL常用SQL收集
- Linux下“read failed after 0 of 4096 at 0: Input/output error”
- 获取GZip加密的网页源码
- 贪心:SPOJ Backup Files