标签:继承
继承,正如字面意思可以理解,拿到财产,不过不是先人故去的时候才能拿到,在写这篇博文前看了会书,快看的睡着了就直接动手写吧,感觉看书没有什么收获,果然实践才是出真知
继承
继承的方式: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的{}
由此知道,继承后建子类对象,进入子类构造函数的执行体外,调用父类构造,然后执行子类构造函数体
C++基础之三大特性之继承的本质(要当就当富二代,否则自己动手才能丰衣足食)
标签:继承
原文地址:http://blog.csdn.net/panpen120/article/details/40269227