c++学习记录(十四)

继承和派生

又开启了新的篇章

  • 可重用性:原先一段代码可实现某功能,后来要再实现该功能时,只需把这段代码贴上去即可
  • 继承:在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类
  • 派生类:是通过对基类进行修改和扩充得到的,在派生类中,可以扩充新的成员变量和成员函数
  • 修改是指比如新定义的成员函数名与基类中的某个成员函数相同,但进行的操作不一样
  • 派生类一经定义后,可以独立使用,不依赖于基类
  • 派生类拥有基类的全部成员函数和成员,无论是private,protected,public
  • 在派生类的各个成员函数中,不能访问继承自基类的private成员

- 派生类的写法

class 派生类名:public 基类名
{
    ...
};

- 派生类对象的内存空间

  • 派生类对象的体积等于基类对象的体积再加上派生类对象自己的成员变量的体积,在派生类对象中包含着基类对象,而且基类对象的存储位置位于派生类对象新增的成员变量之前
  • 例如
class CBase
{
    int v1,v2;
};
class CDrived:pulic CBase
{
    int v3;
};
  • 则CBase占8个字节,CDrived占12个字节存储,顺序如下

|
:-😐:-😐:-:
CDrived|v1|CBase
CDrived|v2|CBase
CDrived|v3|

继承关系和复合关系

- 类之间的两种关系

  • 继承:“是”关系
    • 基类A,B是基类A的派生类
    • 逻辑上要求:“一个B对象也是一个A 对象”
    • 就像中学生从学生中派生,中学生也是学生
  • 复合:“有”关系
    • 类C中“有”成员变量k,k是类D的对象,则C和D是复合关系
    • 一般逻辑上要求:“D对象是C对象的固有属性或组成部分”

原文链接: https://www.cnblogs.com/2002ljy/p/12291042.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    c++学习记录(十四)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/328389

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午4:40
下一篇 2023年3月1日 下午4:40

相关推荐