VC++深入详解笔记 函数的覆盖和隐藏
来源:互联网 发布:淘宝售假保证金 编辑:程序博客网 时间:2024/06/05 10:02
在子类中如果有对基类虚函数的覆盖定义,无论该覆盖定义是否有virtual关键字,都是虚函数
函数的覆盖是发生在派生类和基类之间,两个函数必须完全相同,并且都是虚函数。那么不属于这种情况的都是隐藏!!!!
#include<iostream.h>class Base{public:virtual void xfn(int i){cout<<"Base::xfn(int i)"<<endl;}void yfn(float f){cout<<"Base::yfn(float f)"<<endl;}void zfn(){cout<<"Base::zfn()"<<endl;}};class Derived:public Base{public:void xfn(int i)//覆盖了基类的xfn函数{cout<<"Derived::xfn(int i)"<<endl;}void yfn(int c)//隐藏了基类的yfn函数{cout<<"Derived::yfn(int c)"<<endl;}void zfn()//隐藏了基类的zfn函数{cout<<"Derived::zfn()"<<endl;}};void main(){Derived d;Base *pB=&d;Derived *pD=&d;pB->xfn(5);pD->xfn(5);pB->yfn(3.14f);pD->yfn(3.14f);pB->zfn();pD->zfn();}运行结果如下图所示:
根据结果可以看出
1、派生类和基类的xfn()函数函数名称和参数列表都是一样的,并且都是虚函数,因此子类Derived的xfn()函数覆盖了基类Base的xfn()函数,所以结果都是Derived::xfn();
2、派生类和基类的yfn()函数不一样,并且基类并不是带有virtual关键词的虚函数,所以结果是各出各的;
3、派生类和基类zfn()函数一样,但是基类不是虚函数,所以结果也是各出各的。
0 0
- VC++深入详解笔记 函数的覆盖和隐藏
- 函数的覆盖和隐藏
- C++ 同名隐藏、覆盖,虚函数 的详解和对比
- 2.2.8 函数的覆盖和隐藏
- 函数的重载、覆盖和隐藏
- 函数的重载、覆盖和隐藏
- 成员函数的重载覆盖和隐藏
- 成员函数的重载,覆盖和隐藏
- C++的函数隐藏、覆盖和重载
- 成员函数的重载,覆盖和隐藏
- 函数的重载、覆盖和隐藏
- 成员函数的重载、覆盖和隐藏
- 深入理解成员函数的重载、隐藏、覆盖规则(二)
- 深入理解成员函数的重载、隐藏、覆盖规则
- 深入理解成员函数的重载、隐藏、覆盖规则
- 深入理解成员函数的重载、隐藏、覆盖
- 深入理解成员函数的重载、隐藏、覆盖
- 深入理解成员函数的重载、隐藏、覆盖规则
- AIX PowerPC体系结构及其溢出技术学习笔记
- PHP设计模式(一)
- ArcGIS教程:ArcMap栅格失量化快捷键总结
- ComponentName类讲解
- myeclipse 加载svn插件
- VC++深入详解笔记 函数的覆盖和隐藏
- Bellman_Ford变形求最长路+正权回路或spfa——POJ 1860
- cocos2d-x2.2实现椭圆运动,参数为中心点坐标和长半轴、短半轴
- 去掉Vector中重复的元素
- windows命令行大全
- 动态存储变量与静态存储变量
- 数字图像处理概述
- linux下svn服务器搭建 httpd(apache)+svn
- scala总结(1) -- trait, object, class等相关概念