C++基础之三大特性之继承的本质(要当就当富二代,否则自己动手才能丰衣足食)

继承,正如字面意思可以理解,拿到财产,不过不是先人故去的时候才能拿到,在写这篇博文前看了会书,快看的睡着了就直接动手写吧,感觉看书没有什么收获,果然实践才是出真知

继承

继承的方式:private(默认)、public、protect(区别:子类中能不能用到,子类对象可不可以访问的到,一般我用的public,其他的用不到,我不再这赘述,有需求百度就可以了)

继承后的结果:1.得到父类的财产(变量,不论是公有私有还是保护的);2.访问到父类的所有(变量和函数)----说的是public继承方式,其他继承方式只是不能访问到父类的所有,但还是继承到了

继承后的结果表现形式:A类一个int变量,B类一个int变量,B继承A,建A对象,有四个字节的空间,建B的对象,前四个字节是A类的int变量,后四个字节是自己的变量

继承我是通过封装多线程和扩展封装好的类扩展功能时候有点心得:

不想说书里的空洞内容,还是说我怎么用的

继承的本质:代码的复用---复用变量和函数

我有三种情况下用到继承

1.我继承的父类可以直接访问到父类的成员变量和成员函数

例子:我在不完美封装多线程和用线程卖票的版本里,传入的结构体指针想要delete,但析构函数里不能传参,我在父类各建了相应类型的指针,在子类里用这个指针接收传进来的参数,然后在子类的析构里直接deleted这几个父类的指针

2.我在实现多态用虚函数的时候用到了继承(将虚函数的时候会讲到)

3.我建子类对象,用到父类的构造函数

继承的情况下,建子类对象,在反汇编中看过程

看第一副图,我建B类对象,反汇编中011D1413中调B类构造,我们跳进去是第二幅图

第二幅图我们看到最上面是B()还没有进入{},而在011D14C6是跳到A类的构造---然后进入B的{}

由此知道,继承后建子类对象,进入子类构造函数的执行体外,调用父类构造,然后执行子类构造函数体

时间: 2024-08-06 03:42:26

C++基础之三大特性之继承的本质(要当就当富二代,否则自己动手才能丰衣足食)的相关文章

C++基础之三大特性之封装的本质

什么叫封装 就是用类将要实现的功能或者重复的代码写好 本质:类.更好的复用.高内聚低耦合 本文讲述的是自己的一些理解,几乎都是理论,实验过的人才知道到底是怎么回事 理解是"类":封装在类里 理解是"更好的复用":封装好的类用继承使用,那封装的就相当于是基础是底部的东西,封装的越好就相当于为了他人的更好复用或者自己更好的二次开发 理解是"高内聚低耦合":我当初是分为为什么"高"什么是"内聚"为什么"

JavaScript基础--面向对象三大特性(八):继承封装多态

一.构造函数基本用法:function 类名(参数列表){属性=参数值} 1 function Person(name,age){ 2 this.name = name; 3 this.age = age; 4 } 5 6 //创建Person对象的时候,可以直接给名字和年龄 7 var p1 = new Person('abc',80); 8 window.alert(p1.name); 9 var p2 = new Person('hello',9); 10 window.alert(p2.

java基础篇(二) ----- java面向对象的三大特性之继承

java面向对象的三大特性之继承: 复用代码是java众多引人注目的功能之一,但是想要成为极具革命性的语言,仅仅是复制代码并对其加以改变是不够的.它必须能够做更多的事.引自<Think in java>    而代码复用也是程序员一直不断追求的.由此来说下代码复用的一种方式 java面向对象的三大特性--继承!! 在面向对象程序设计中,继承机制可以有效地组织类的结构.确定类之间的关系,在已有类的基础上开发新的类.继承机制在程序代码复用.提高软件开发效率.降低软件系统维护成本等方面具有重要作用.

面向对象的三大特性之继承-基础知识总结------彭记(05)

面向对象的三大特性之继承: js中的某些对象没有一些需要的属性和方法,但是另外的对象有,那么拿过使用,就是继承. js中继承的实现方式: 1.混入式继承:通过循环将一个对象中的所有属性和方法混入到另外一个对象中: var me={ work:function(){ console.log('敲代码'): } }: var mayun={ money:9999999, car:'000', manager:function(){ console.log('管理巴巴...'); } } /*遍历,让

【转】java提高篇(二)-----理解java的三大特性之继承

[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大

java随笔:三大特性之继承

Java三大特性之继承 一.介绍 笔记重点:构造器.protected关键字(这个自行查阅).向上转型.private关键字(继承非常重要的要点)  复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的. 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

[转载]CSS三大特性(继承、优先级、层叠)之个人见解

首先声明一下CSS三大特性——继承.优 先级和层叠.继承即子类元素继承父类的样式,比如font-size,font-weight等f开头的css样式以及text-align,text- indent等t开头的样式以及我们常用的color.简单的就不演示了,强调一下font-size这个东东(虽然也有继承,但是标签不同继承的效果也 不一样),比如下面的代码: <!DOCTYPE html> <html lang="en"> <head> <met

面向对象编程三大特性之继承

面向对象编程有三大特性:继承,封装,多态~ 从object基类开始,逐步向下开枝散叶,组成了整个对象体系. 为什么要用这种形式? 解答这个问题之前,我们可以先回顾一下生物的进化史~ 从单细胞开始到现在的哺乳动物,在不断地进化中,物种的身体结构愈加复杂,这种进化所花费的时间非常漫长,但是一旦进化成功,后代就可以直接拥有父母的结构,而不用再次花费漫长的时间用来进化. 现在我们再次回到继承上来,object基类支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务.这是 .