转载:http://blog.csdn.net/worldmakewayfordream/article/details/46827161

函数的覆盖

覆盖发生的条件:

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

(2)发生覆盖的两个函数分别位于派生类和基类

(3)函数名和参数列表必须完全相同

函数的隐藏

隐藏发生的条件:

(1)子类和父类的函数名相同,参数列表可以不一样

看完下面的例子就明白了

[cpp] view plaincopy
  1. #include "iostream"
  2. using namespace std;
  3. class CBase{
  4. public:
  5. virtual void xfn(int i){
  6. cout << "Base::xfn(int i)" << endl; //1
  7. }
  8. void yfn(float f){
  9. cout << "Base::yfn(float)" << endl; //2
  10. }
  11. void zfn(){
  12. cout << "Base::zfn()" << endl;  //3
  13. }
  14. };
  15. class CDerived : public CBase{
  16. public:
  17. void xfn(int i){
  18. cout << "Derived::xfn(int i)" << endl;  //4
  19. }
  20. void yfn(int c){
  21. cout << "Derived:yfn(int c)" << endl;  //5
  22. }
  23. void zfn(){
  24. cout << "Derived:zfn()" << endl;  //6
  25. }
  26. };
  27. void main(){
  28. CDerived d;
  29. CBase *pb = &d;
  30. CDerived *pd = &d;
  31. pb->xfn(5);  //覆盖
  32. pd->xfn(5);  //直接调用
  33. pb->yfn(3.14f); //直接调用
  34. pd->yfn(3.14f);  //隐藏
  35. pb->zfn();  //直接调用
  36. pd->zfn();  //隐藏
  37. }

关于C++子类父类成员函数的覆盖和隐藏相关推荐

  1. C++子类父类成员函数的覆盖和隐藏实例详解

    https://www.jb51.net/article/117380.htm 函数的覆盖 覆盖发生的条件: (1) 基类必须是虚函数(使用virtual 关键字来进行声明) (2)发生覆盖的两个函数 ...

  2. JAVA面向对象中继承的子父类成员函数的内存图解,以及成员函数中的覆盖的应用.

    JAVA中继承子父类成员函数的使用 我把成员函数理解为就是类里面的功能,或者说是方法. 子父类的成员函数调用可以是这样的 例如: class Fu{void show1(){System.out.pr ...

  3. 子类内部调用父类成员函数,及子类对象在外部调用父类成员函数问题(C++)

    先看段程序: #include <iostream>using namespace std;class A {private:void f(){cout << "pr ...

  4. 深入理解成员函数的重载、隐藏、覆盖规则(二)

    本文作者:islwj 本文出处:http://blog.csdn.net/islwj 声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明 ...

  5. java-成员变量的属性与成员函数的覆盖

    java中在多态的实现是通过类的继承或者接口的实现来完成的. 在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是 ...

  6. java成员变量覆盖_java-成员变量的属性与成员函数的覆盖

    java中在多态的实现是通过类的继承或者接口的实现来完成的. 在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是 ...

  7. java 成员函数_Java继承中成员变量和成员函数的覆盖

    关于继承中变量和方法的覆盖: 1, 与基类中同名的变量,会被派生类所覆盖(同时存在但是有独立的值),直接取值将是派生类的值,但是基类的变量也是同时存在的.如果通过派生类函数访问,得到派生类的值.如果通 ...

  8. Java继承中成员变量和成员函数的覆盖

    2019独角兽企业重金招聘Python工程师标准>>> 关于继承中变量和方法的覆盖: 1, 与基类中同名的变量,会被派生类所覆盖(同时存在但是有独立的值),直接取值将是派生类的值,但 ...

  9. MFC中子类调用父类成员

    需求:首先是不建议在子类中调用父类成员,但有时必须要用可用下面代码. 代码: #include"CSend_ImageDlg.h"//*******//CSend_ImageDlg ...

最新文章

  1. 手动修改oracle scn号,SCN(系统改变号)
  2. Python3 GUI编程入门程序示例
  3. 全志 增加强制横屏标志 Patch
  4. 促进新一代人工智能产业发展三年行动计划_工信部新一代人工智能产业创新重点揭榜任务——中国联通智能化网络基础设施及开放平台启动会成功召开...
  5. phoenix的元数据一般存在哪里_Phoenix的一些问题
  6. udev工作流程简图
  7. 小程序开发配置接口域名提示:不在以下 request 合法域名列表中,请参考文档
  8. MATLAB信号处理之连续时间系统的时域分析
  9. 互联网内卷之谁也别想好!
  10. wireshark tshark抓包筛选并存入文件 Centos linux 命令行抓包 yum安装wireshark
  11. java 跟 咖啡的关系
  12. bzoj2151: 种树
  13. Web自动化测试框架-PO模式
  14. 关于贝叶斯公式的解释,通俗易懂(转载)
  15. 什么是前贴片、中贴片和后贴片广告?它们分别在哪里使用?
  16. 88E1111 100BASE-T百兆工程(part2--完)
  17. SpringBoot实现二维码生成
  18. 网络协议:HTTP的升级改进
  19. 计算机应用有作业吗,计算机应用基础_作业1
  20. 读围城论方鸿渐与孙柔嘉的爱情

热门文章

  1. Axis通过wsdd部署Web Service
  2. [傅里叶变换及其应用学习笔记] 二十四. 级联,脉冲响应
  3. Linux中exit与_exit的区别
  4. Android版本演进中的兼容性问题
  5. python 可执行文件_如何通过Python函数运行的可执行文件的终端...
  6. 笔记本电脑怎么清理灰尘_手机声音越用越小怎么办?一段黑科技音波就能清理扬声器灰尘...
  7. 天津科技大学计算机学院复试分数线,2021天津科技大学研究生复试分数线
  8. mysql yintint类型_MySQL服务器2 被嫌弃的胖子
  9. 远程教育英语和计算机没过怎么办,网络教育英语统考能考几次 没考过怎么办?...
  10. 属性被分为八大类不包括_Python语言---私有属性