• 继承和组合


    继承

    概率

    实现多个对象对于同一个数据的引用,例子同外卖系统差不多!(不同的人有不同的数据对象,然而这个对象 数据 是共享的。)

    格式

    class Student/*夫类*/: public Person/*子类*/{
    }
    
    • 1
    • 2

    保存Person之中的世界内容。public类,prviate类,与protected类,使用不同的方法。


    pubilc类所有的类与类里面的内容相同,protected类让private类表现出公用进行访问相关的内容。

    私有成员变量不可以进行访问。

    关于不同的成员变量,继承内容。就是public < protected < private。不同类的碰撞出现这个情况。

    切割

    进行数据的赋值返回!

    只可以让子类赋值给父类,进行数据切割。

    1,子类的指针可以强制性的赋值给父类的指针

    2,父类的指针不可以强制赋值给子类

    3,子类对象可以赋值给父类对象/指针/引用

    友元关系不可以继承,可以使用frinend进行接口露出来!


    作用域

    子类与父类都有独立作用域。(在访问不同,限制条件不同)

    类成员与父类屏蔽同名的成员(函数,变量),叫做重定义。只可以使用多次引用进行显示访问。

    但是在体系不要命名定义同名的函数变量。

    父类的默认成员函数

    函数(除了析构)都是先子类进行变化,然后进行父类变化。

    析构函数,进行父类进行释放,然后进行子类进行释放。

    静态成员

    static int p
    
    • 1

    静态成员p,数据在整个体系之中只有一个(不可以创建新的一个东西!)

    继承关系

    单继承**:一个子类只有一个直接父类时称这个继承关系为单继承**(一个父亲)。

    多继承:一个子类有两个或以上直接父类时称这个继承关系为多继承(多个父亲)。

    菱形继承

    会发生数据冗余的情况!

    请添加图片描述

    数据存储会发生baswClass类的数据重复储存到midClass和midClass。,然后让那个数据储存到deriveClass。


    通过继承可以解决数据冗余的情况。形式:

    class B : virtual public A{
      
    }
    
    • 1
    • 2
    • 3

    通过这样的方式解决问题!储存的方式变成了数据 + 偏移量(相对的地方!)
    请添加图片描述

    前面的是数据,后面为的偏移量。

    组成

    继承:人 <- 学生 ,动物 <- 狗(类似使用pubilc进行使用)。Is -a类。

    白盒子,可以看见内部的东西。

    组合:在类里面声明另外一个类。(与继承有区别)has -a类,黑箱复用。

    可以使用组合就尽量使用组成!

  • 相关阅读:
    前端跨域问题解决
    文献翻译平台(自用)
    一位年薪35W的测试被开除,回怼的一番话,令人沉思
    Docker部署微服务项目
    【C++编程语言】之STL常用算法之 拷贝和替换算法 copy()函数 replace()函数 replace_if()函数 swap()函数
    TensorFlow入门(九、张量及操作函数介绍)
    java计算机毕业设计校园外卖零食商城系统源码+数据库+系统+lw文档+部署
    文章翻译软件-批量免费翻译软件支持各大翻译接口
    S32 Design Studio for ARM 2.2 快速入门
    【附源码】计算机毕业设计JAVA宠物医院管理系统
  • 原文地址:https://blog.csdn.net/asibble/article/details/126476803