一、隐藏

  • 父子关系。
  • 成员(数据成员或者成员函数)同名;
  • 此时子类中会隐藏父类中的同名成员。
  • 无法函数重载,只会隐藏!
  • 如果想访问父类中的同名成员,需要 :: 操作。

  • 访问父类同名函数的方法

二、is-a

(1)概念的理解

  • 工人也是人,士兵也是人,隐形眼镜也是眼镜。
  • 即派生类的对象,也是基类的对象。

(2)从存储角度理解

  • 只能取部分内容赋值给父类,或者父类指针只能指向子类的部分内容。

三、虚析构函数

  • 在父类和子类的析构函数前,添加关键字virtual,即可构成虚析构函数。

(1)虚析构函数的意义

int main(void)
{person* p=&soldier;//……delete p;
/*此时如果person类的析构函数,只是普通的析构函数,则只会调用person类的析构函数,而不会调用soldier类的析构函数
*这样会造成内存泄漏,因为person类的析构函数,只是释放了部分的内存资源。
*解决方法是,在person类的析构函数前,添加关键字virtual,表示这是虚析构函数。则delet p时,会调用person类和soldier类的析构函数。
*/return 0;}

c++远征之继承篇——隐藏,isa,虚析构函数相关推荐

  1. c++远征之继承篇——继承的概念、继承时构造函数/析构函数的先后顺序

    1.继承的概念 2.继承中,构造函数和析构函数的先后顺序

  2. C++之继承探究(七):虚析构函数

    前文:C++之继承探究(六):虚函数和多态 虚析构函数   虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象时防止子类的数据不会被释放造成内存泄露.   如果父类的析构不是虚 ...

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

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

  4. c++远征之继承篇——继承方式

    以下内容源于慕课网,系学习整理而成,如有侵权,请告知删除. 1.公有继承 2.保护继承 3.私有继承

  5. unique函数_C++智能指针2:(虚?)析构函数(标准与实现的差异)

    只要是有良心的 C++ 教材,总是会苦心孤诣地告诫初学者,在继承关系中,应该把父类的析构函数定义成虚函数.这已然成为一条铁律,如果违背,不仅有内存泄漏的风险,在多继承情况下甚至会出现未定义行为.因此, ...

  6. 继承和多态 1.0 -- 继承概念(is-a、has-a,赋值兼容规则,隐藏重定义)

    普通继承和访问权限 当一个继承没有虚拟继承或者是多重继承时,就是一个简单的继承的时候,这个时候就是一个普通的继承. 普通继承的内存空间是:子类的对象中,包含了父类的成员变量,同时也可以调用父类的成员函 ...

  7. C++中的虚继承 重载隐藏覆盖的讨论

    虚继承这个东西用的真不多.估计也就是面试的时候会用到吧.. 可以看这篇文章:<关于C++中的虚拟继承的一些总结> 虚拟基类是为解决多重继承而出现的. 如:类D继承自类B1.B2,而类B1. ...

  8. c++远征之多态篇——虚函数及其实现原理

    以下内容源于慕课网的学习整理,如有侵权,请告知删除. 1.多态的定义 简单理解,就是对于同一条命令,不同对象会做出不同的操作. 相同对象收到不同消息,或者不同对象收到相同消息时,产生不同的动作. 2. ...

  9. 慕课网-C++远征之多态篇(中)-学习笔记

    c++远征之多态篇 纯虚函数 & 抽象类 例子: class Shape { public:virtual double calcArea()//虚函数{return 0;}virtual d ...

最新文章

  1. javascript中 (function(){})();如何理解?
  2. 完成一个MVC+Nhibernate+Jquery-EasyUI信息发布系统
  3. SQL Server 自定义快捷键
  4. EF 数据迁移 常见错误
  5. github网站证书里的别名
  6. Abstract Factory(抽象工厂)--对象创建模式
  7. Can’t Activate Reporting Services Service in SharePoint
  8. 常见的垃圾回收器算法有哪些,各有什么优劣?
  9. cSpring Boot整合RabbitMQ详细教程
  10. uniapp 底部菜单_uniapp 原生导航栏
  11. python线程监控_一日一技:Python多线程的事件监控
  12. Tornado引入静态css、js文件
  13. Ubuntu 18.04 安装NVIDIA显卡驱动教程
  14. unity的安装教程
  15. 基于单片机的防盗报警监控系统设计(#0401)
  16. IDEA-快捷键noob
  17. python-GDAL之空间数据处理-自带工具集
  18. 数据库系统期末总结(三)(往届试卷2018年12月A卷、B卷、E卷,2019年5月A卷,选择题终篇)
  19. STM32F429第二十八篇之ADC
  20. 人工智能在电力系统中的应用值得思考的问题

热门文章

  1. 记账本开发小计(四)
  2. 关于移动手机端富文本编辑器qeditor图片上传改造
  3. Spring笔记③--spring的命名空间
  4. 百度富文本编辑器的应用技巧---在一个页面中使用多个样式不同功能不同的编辑器...
  5. 深入浅出 Javascript API(二)--地图显示与基本操作 转
  6. 1.KafKa-介绍
  7. 修复./mysql/proc
  8. HDUOJ---1879 继续畅通工程
  9. 查看及修改MYSQL最大连接数
  10. 利用Excel VBA畫出所有圖標