基类成员和派生类成员的名字一样时会造成遮蔽,这句话对于成员变量很好理解,对于成员函数要引起注意,不管函数的参数如何,只要名字一样就会造成遮蔽。换句话说,基类成员函数和派生类成员函数不会构成重载,如果派生类有同名函数,那么就会遮蔽基类中的所有同名函数,不管它们的参数是否一样
#include<iostream>
using namespace std;
//基类Base
class Base{public:void func();void func(int);
};
void Base::func(){ cout<<"Base::func()"<<endl; }
void Base::func(int a){ cout<<"Base::func(int)"<<endl; }
//派生类Derived
class Derived: public Base{public:void func(char *);void func(bool);
};
void Derived::func(char *str){ cout<<"Derived::func(char *)"<<endl; }
void Derived::func(bool is){ cout<<"Derived::func(bool)"<<endl; }
int main(){Derived d;d.func("c.biancheng.net");d.func(true);//d.func();  //compile errord.func(10);  //compile errord.Base::func();d.Base::func(100);return 0;
}

C++继承时的名字遮蔽(二)相关推荐

  1. C++继承时的名字遮蔽(一)

    儿子从父亲那里继承了一辆车,后来自己也买车了,如果开车就开自己的车,否则自己为什么买车呢 如果派生类中的成员(包括成员变量和成员函数)和基类中的成员重名,那么就会遮蔽从基类继承过来的成员.所谓遮蔽,就 ...

  2. C++继承时名字的遮蔽

    如果派生类中的成员(包括成员变量和成员函数)和基类中的成员重名,那么就会遮蔽从基类继承过来的成员.所谓遮蔽,就是在派生类中使用该成员(包括在定义派生类时使用,也包括通过派生类对象访问该成员)时,实际上 ...

  3. 继承QWidget使用QPainter自定义二维图形控件【Qt学习】

    继承QWidget使用QPainter自定义二维图形控件[Qt学习] 通过阅读该文章,将了解本文所说的二维图形控件的基本概念.为何要自定义二维图形控件.如何自定义二维图形控件. 该文章将首先进行一些书 ...

  4. C++ 论公有继承时纯虚函数、虚函数、普通函数的行为表现及虚函数的重写(深度好文)

    文章目录 1 公有继承时三种类型的函数行为 1.1 纯虚函数 (pure virtual) 1.2 普通虚函数 **1.2.1 方法一** **1.2.2 方法二** 1.3 非虚函数 2 重写 (o ...

  5. Java继承时构造函数的关系

    Java继承时构造函数的关系,先来一道笔试题给大家看看: 在继承中,关于构造方法的说明,下列说法错误的是() A.子类无条件的继承父类的无参构造方法, B.子类可以引用父类中的有参构造方法,使用sup ...

  6. C++虚继承下的内存模型(二)

    对于虚继承,恰恰和普通继承相反,大部分编译器会把基类成员变量放在派生类成员变量的后面,这样随着继承层级的增加,基类成员变量的偏移就会改变,就得通过其他方案来计算偏移量. 下面我们来一步一步地分析虚继承 ...

  7. C++虚继承时的构造函数

    在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数.对最终的派生类来说,虚基类是间接基类,而不是直接基类.这跟普通继承不同,在普通继承中,派生类构造函 ...

  8. C++多继承时的对象内存模型

    #include <cstdio> #include <iostream> using namespace std; //基类A class A{ public:A(int a ...

  9. c++远征之继承篇——多重继承,多继承,虚继承,多继承时的重复定义解决方法

    以下内容源于慕课网的学习整理,如有侵权,请告知删除. 1.多重继承 (1)概念理解 2.多继承 (1)概念理解 3.虚继承 (1)问题的引出:多重继承和多继承的结合,造成数据的冗余.     (2)解 ...

最新文章

  1. nx set 怎么实现的原子性_基于Redis的分布式锁实现
  2. JSON简介以及用法汇总
  3. JavaWeb学习总结(一)——JavaWeb开发入门(转载)
  4. HDU Problem - 5101 Select(二分)
  5. 【ArcObject开发】实验:ArcGIS Desktop开发方式入门基础教程
  6. Python ——模块
  7. python的opencv库_python环境下安装opencv库的方法
  8. 建立自动备份的维护计划
  9. 使用h5py操作hdf5文件
  10. 编译用户Orcle的package中访问其它Schema的表
  11. 【转】Android游戏框架AndEngine使用入门
  12. mysql 子查询 in 多表_MySQL多表之子查询
  13. 从B站源码里探索推荐算法的奥义
  14. EPUB和PDF的区别,有什么好用的安卓epub阅读器
  15. 酱茄教你怎么用URL Scheme H5链接打开微信小程序
  16. 17行python代码轻松搞定堆糖网所有小姐姐图片
  17. 「镁客·请讲」移康智能朱鹏程:做产品就要直击痛点,多余的功能只会是噱头...
  18. 【七夕活动精选】致你的七夕礼物——3D Heart,跳动的 3D 爱心
  19. 计算机二级word插入图表,四步教你在excel柱形图上添加折线图
  20. python读二进制格点雷达基数据_radar: 基于python pycinrad 以及多种类库 编写基于java 的雷达基数据统一格式读取...

热门文章

  1. 【Connection Events】【BLE】【原创】
  2. android studio 中的编码问题
  3. Post和Get差异
  4. Demo学习: CalendarPanel
  5. 在CISCO交换机上配置SSH
  6. 邮件实用技巧一:如何让你的邮件畅通全球
  7. STM32高级开发(12)-在GCC中使用printf打印串口数据
  8. PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列
  9. PAT甲级1085 Perfect Sequence :[C++题解]双指针
  10. 堆排序之 大顶堆和小顶堆 c语言