本周主要学习了c++中类与类之间的关系,主要有:

1)继承(Inheritance);

2)复合(Composition);

3)委托(Delegation);

一、复合:

类 queue 里有 deque ,其中类 queue 为容器,其拥有了 deque,该种关系即为复合,表示 has-a。其两者一起出现。

从内存角度看待该种关系:

复合关系下的构造函数和析构函数:

构造函数由内而外:

Container 的构造函数首先调用Component的默认构造函数,然后才执行自己。具体过程如下:注意:调用Component的默认构造函数的过程将由编译器自动完成,但若想调用Component的非默认构造函数,则需要自己添加。

Container::Container(...) : Component()  { ... }; 

析构由外而内:

Container 的析构函数首先执行自己,然后才调用Component 的析构函数,具体过程如下:

Container::~Container(...) { ...~Component() };

二、委托(用指针相连)

类 String 有一个指针指向StringRed,该种关系即为委托。 类String 可以在任何时间调用StringRed,将任务委托给StringRed。两者不同步,左边先创建,等到需要右边时才创建右边处出来。

三、继承(is a)

c++中有三种继承方式:private 继承、protected 继承和 public 继承,其中最重要的为public 继承。其基本语法如下图所示。

继承关系下的构造和析构:

构造由内而外:

子类的构造函数首先调用父类的默认构造函数,然后才执行自己。

析构由外而内:

子类的析构函数首先执行自己,然后才调用父类的析构函数。

继承搭配虚函数的使用:

1)非虚函数:父类中已有定义,子类不能重新定义它。

2)虚函数:父类中已有默认的定义,但子类需要时仍可重新定义。

3)父类中无定义,子类使用时一定要重新定义。

一个继承搭配虚函数使用的例子:

四、委托+继承的广泛应用

1)观察者模式

2)组合模式

典型应用场景 : windows的文件夹与文件系统,文件夹中又有文件

3)原型模式

应用场景 :原型模式是通过已经存在的对象的接口快速方便的创建新的对象。

转载于:https://www.cnblogs.com/memory-niu/p/8325839.html

第三周笔记 c++ Boolan相关推荐

  1. Boolan STL 第三周笔记

    各种类型container deque deque是一种分段连续的容器,特点是双向开口,使用起来可以认为它是一段连续的内存空间,不仅可以向前方增加内存空间,也可以向后方增加内存空间. deque 模拟 ...

  2. 吴恩达神经网络和深度学习——第三周笔记

    Week 3 目录 Week 3 3-1神经网络概述 3-2神经网络的表示 3-3计算神经网络的输出 3-4多个栗例子中的向量化 3.5 向量化实现的解释 3-6.3-7.3-8激活函数 3-11随机 ...

  3. python第三周笔记_第三周 day3 python学习笔记

    1.字符串str类型,不支持修改. 2.关于集合的学习: (1)将列表转成集合set:集合(set)是无序的,集合中不会出现重复元素--互不相同 (2)集合的操作:交集,并集.差集.对称差集.父集.子 ...

  4. (英文版)吴恩达机器学习第三周笔记

    Logistic Regression 这是我在coursera上看Andrew Ng的machine learning做的英文版笔记,可以帮助学英语的小伙伴熟悉熟悉一些专业术语在英文中的表达.由于笔 ...

  5. Python语言程序设计(嵩天老师版)第三周笔记——字符串类型及操作

    一.字符串类型的表示: 由0个或多个字符组成的有序字符序列 字符串有2类共4种表示方法:     1.字符串由一对单引号或一对双引号表示--仅表示单行字符串     2.由一对三引号或三双引号表示,可 ...

  6. python第三周笔记_Python第三周 学习笔记(1)

    key-value键值对的数据的集合 可变的.无序的.key不重复 初始化: d = dict() d = {} d = dict(**kwargs) 如:d = dict(a=1,b=2) dict ...

  7. python第三周笔记_Python第四周 学习笔记(1)

    函数 Python的函数没有return语句,隐式会返回一个None值 函数是可调用的对象,callable() 函数参数 参数调用时传入的参数要和定义的个数相匹配(可变参数例外) 位置参数 def ...

  8. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  9. 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

最新文章

  1. pythonclass全局变量_Python-多处理全局变量更新未返回给父级
  2. 谷歌时间晶体登上Nature,诺奖得主重大猜想成为现实
  3. Linux下如何简单删除/data的空目录
  4. openssl https 单向认证连接成功示例
  5. 【Excel】数据处理与查看
  6. 教你怎么用三种办法找到发给你QQ的坦白说的那个人
  7. 单片机C语言code关键字
  8. 程序员的工作总结(2017-12-04)
  9. L2十档行情逐笔成交数据实战技巧
  10. 开发系统所需的服务器,开发软件的服务器需要什么配置
  11. 大二学生《Web编程基础》期末网页制作 HTML+CSS个人网页设计实例
  12. 第1章 微处理器、微型计算机、微型计算机系统的区别
  13. Flink 结合 布隆过滤器(BloomFilter) 实现去重
  14. stata学习笔记(六):数据合并
  15. 【图像超分辨率重建】——EnhanceNet论文精读笔记
  16. Agent with Warm Start and Adaptive Dynamic Termination for Plane Localization in 3D Ultrasound
  17. CAD修改默认捕捉点设置
  18. 电梯上下运行一个周期中的拉力和加速度变化
  19. 华为硬件工程师社招机考题库_华为校招_硬件技术工程师机考试题及答案
  20. App Store和Google Play的商店排名因素

热门文章

  1. SQL 之后,GQL 成为 ISO/IEC 国际标准数据库语言项目
  2. python generator_Python 生成器 generator
  3. linux ls 时间显示时间格式,ls -l显示的日期格式如何设定?
  4. 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...
  5. 不染用计算机数字,2013年计算机等级考试一级B知识预测题(6)
  6. 新蓝剑java_Ubuntu 8.10 编译安装飞鸽(IPMsg 0.9.6)
  7. c语言设计阶段作业答案,C语言程序设计阶段考试练习题(答案)
  8. oracle中的fetchsize,oracle setFetchsize() 优化查询速度
  9. hibernate clob mysql_Hibernate操作Clob类型数据
  10. python进入高考-Python已进入小学教材将加入高考