第三周笔记 c++ Boolan
本周主要学习了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相关推荐
- Boolan STL 第三周笔记
各种类型container deque deque是一种分段连续的容器,特点是双向开口,使用起来可以认为它是一段连续的内存空间,不仅可以向前方增加内存空间,也可以向后方增加内存空间. deque 模拟 ...
- 吴恩达神经网络和深度学习——第三周笔记
Week 3 目录 Week 3 3-1神经网络概述 3-2神经网络的表示 3-3计算神经网络的输出 3-4多个栗例子中的向量化 3.5 向量化实现的解释 3-6.3-7.3-8激活函数 3-11随机 ...
- python第三周笔记_第三周 day3 python学习笔记
1.字符串str类型,不支持修改. 2.关于集合的学习: (1)将列表转成集合set:集合(set)是无序的,集合中不会出现重复元素--互不相同 (2)集合的操作:交集,并集.差集.对称差集.父集.子 ...
- (英文版)吴恩达机器学习第三周笔记
Logistic Regression 这是我在coursera上看Andrew Ng的machine learning做的英文版笔记,可以帮助学英语的小伙伴熟悉熟悉一些专业术语在英文中的表达.由于笔 ...
- Python语言程序设计(嵩天老师版)第三周笔记——字符串类型及操作
一.字符串类型的表示: 由0个或多个字符组成的有序字符序列 字符串有2类共4种表示方法: 1.字符串由一对单引号或一对双引号表示--仅表示单行字符串 2.由一对三引号或三双引号表示,可 ...
- python第三周笔记_Python第三周 学习笔记(1)
key-value键值对的数据的集合 可变的.无序的.key不重复 初始化: d = dict() d = {} d = dict(**kwargs) 如:d = dict(a=1,b=2) dict ...
- python第三周笔记_Python第四周 学习笔记(1)
函数 Python的函数没有return语句,隐式会返回一个None值 函数是可调用的对象,callable() 函数参数 参数调用时传入的参数要和定义的个数相匹配(可变参数例外) 位置参数 def ...
- python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)
[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...
- 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
最新文章
- pythonclass全局变量_Python-多处理全局变量更新未返回给父级
- 谷歌时间晶体登上Nature,诺奖得主重大猜想成为现实
- Linux下如何简单删除/data的空目录
- openssl https 单向认证连接成功示例
- 【Excel】数据处理与查看
- 教你怎么用三种办法找到发给你QQ的坦白说的那个人
- 单片机C语言code关键字
- 程序员的工作总结(2017-12-04)
- L2十档行情逐笔成交数据实战技巧
- 开发系统所需的服务器,开发软件的服务器需要什么配置
- 大二学生《Web编程基础》期末网页制作 HTML+CSS个人网页设计实例
- 第1章 微处理器、微型计算机、微型计算机系统的区别
- Flink 结合 布隆过滤器(BloomFilter) 实现去重
- stata学习笔记(六):数据合并
- 【图像超分辨率重建】——EnhanceNet论文精读笔记
- Agent with Warm Start and Adaptive Dynamic Termination for Plane Localization in 3D Ultrasound
- CAD修改默认捕捉点设置
- 电梯上下运行一个周期中的拉力和加速度变化
- 华为硬件工程师社招机考题库_华为校招_硬件技术工程师机考试题及答案
- App Store和Google Play的商店排名因素
热门文章
- SQL 之后,GQL 成为 ISO/IEC 国际标准数据库语言项目
- python generator_Python 生成器 generator
- linux ls 时间显示时间格式,ls -l显示的日期格式如何设定?
- 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...
- 不染用计算机数字,2013年计算机等级考试一级B知识预测题(6)
- 新蓝剑java_Ubuntu 8.10 编译安装飞鸽(IPMsg 0.9.6)
- c语言设计阶段作业答案,C语言程序设计阶段考试练习题(答案)
- oracle中的fetchsize,oracle setFetchsize() 优化查询速度
- hibernate clob mysql_Hibernate操作Clob类型数据
- python进入高考-Python已进入小学教材将加入高考