码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-10-19 23:21:42      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:继承

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

继承

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

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

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

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

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

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

我有三种情况下用到继承

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

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

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

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

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

bubuko.com,布布扣bubuko.com,布布扣

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

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

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

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

标签:继承

原文地址:http://blog.csdn.net/panpen120/article/details/40269227

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!