自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 设计模式学习(十五) 迭代器模式

迭代器模式场景描述设计思路UML代码运行结果这是个人学习编程模式的系列学习笔记第十五篇。采用Qt Creator进行编写,但尽量采用C++基础语法。迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中各个元素 , 而又不需暴露该对象的内部表示。由于迭代器模式引用太过于广泛,大部分现代语言都将这个模式引入语言中直接支持(foreach in),甚至有人建议将这个...

2019-03-20 17:46:43 162

原创 设计模式学习(十四) 组合模式

组合模式场景描述设计思路UML这是个人学习编程模式的系列学习笔记第十四篇。采用Qt Creator进行编写,但尽量采用C++基础语法。组合模式(Composite Pattern):将对象组合成树形结构以表示“部分 -整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式可以方便构建树型结构组织,比如总公司、分公司、办事处,每一级有可以有自己的具体部门,比如财务,...

2019-03-14 10:36:31 163

原创 设计模式学习(十三) 备忘录模式

备忘录模式场景描述设计思路UML代码运行结果这是个人学习编程模式的系列学习笔记第十三篇。采用Qt Creator进行编写,但尽量采用C++基础语法。备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。比较典型的应用是过程中需要根据保存的数据,恢复之前的运行环境。比如游戏运行过程中...

2019-03-06 22:21:24 205

原创 设计模式学习(十二) 适配器模式

适配器模式场景描述设计思路UML代码运行结果这是个人学习编程模式的系列学习笔记第十二篇。采用Qt Creator进行编写,但尽量采用C++基础语法。适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另外一个接口。 适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器就类似于一个翻译,将双方不能直接交流的东西翻译为可以沟通的东西。适配器模式有...

2019-03-05 18:02:55 147

原创 设计模式学习(十一) 观察者模式

观察者模式场景描述设计思路UML这是个人学习编程模式的系列学习笔记第十一篇。采用Qt Creator进行编写,但尽量采用C++基础语法。观察者模式(Observer Pattern):定义对象间的一种一对多的依赖关系 ,当一个对象的状态发生改变时 , 所有依赖于它的对象都得到通知并被自动更新。观察者模式又叫:依赖(Dependents)或发布-订阅模式(Publish-Subscribe)...

2019-03-05 17:02:46 135

原创 设计模式学习(十) 建造者模式

建造者模式场景描述设计思路UML代码运行结果这是个人学习编程模式的系列学习笔记第十篇。采用Qt Creator进行编写,但尽量采用C++基础语法。建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。场景描述设计思路UML代码运行结果...

2019-03-04 11:53:11 141

原创 设计模式学习(九) 外观模式

外观模式场景描述设计思路UML代码运行结果这是个人学习编程模式的系列学习笔记第九篇。采用Qt Creator进行编写,但尽量采用C++基础语法。外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简单来说,就是一个子系统对外提供一个易用的接口类,同子系统打交道的任务由这个接口类来完成,如果用户想...

2019-03-03 22:41:16 103

原创 设计模式学习(八) 模板方法模式

模板方法模式场景描述设计思路UML这是个人学习编程模式的系列学习笔记第八篇。采用Qt Creator进行编写,但尽量采用C++基础语法。模板方法模式(Template Method)定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。场景描述设计思路UML...

2019-03-03 10:04:39 165

原创 设计模式学习(七) 原型模式

原型模式场景描述设计思路UML这是个人学习编程模式的系列学习笔记第七篇。采用Qt Creator进行编写,但尽量采用C++基础语法。原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这种模式是说用对象创建对象,即克隆对象。还一些支持原型的语言中,这个模式本身支持。对于C++这样的静态语言,实现上是实现一个克隆函数。C++本身默认...

2019-03-02 23:20:02 163

原创 设计模式学习(六) 状态模式

状态模式场景描述设计思路UML这是个人学习编程模式的系列学习笔记第六篇。采用Qt Creator进行编写,但尽量采用C++基础语法。状态模式(Stat Pattern):允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。这种模式主要是用于处理两类情况:1、有大量的ifelseif的判断,这样的写法不利于代码的维护和修改,如果有新的修改,对一大片这样的判断代码进行修改...

2019-03-02 14:24:38 212

原创 设计模式学习(五) 工厂方法模式和抽象工厂模式

工厂方法模式和抽象工厂模式场景描述设计思路代码这是个人学习编程模式的系列学习笔记第五篇。采用Qt Creator进行编写,但尽量采用C++基础语法。之前学习了简单工厂模式。在简单工厂模式的基础上,为解决简单工厂的缺陷(添加新产品不光需要添加新的产品类,还需要修改简单工厂类,不能很好满足面向对象编程对修改封闭,对扩展开放的要求),进一步发展为工厂方法模式和抽象工厂模式。工厂方法模式和抽象工厂...

2019-02-28 14:48:01 333

原创 设计模式学习(四) 代理模式

代理模式场景描述设计思路UML图代码运行结果这是个人学习编程模式的系列学习笔记第四篇。采用Qt Creator进行编写,但尽量采用C++基础语法。代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。有四种常用的情况:(1)远程代理( Remote Proxy ),(2)虚代理(Virtual Proxy),(3)保护代理(Protection Proxy),(4)智能引用(...

2019-02-26 20:40:41 154

原创 设计模式学习(三) 装饰模式

装饰模式场景描述设计思路UML图代码这是个人学习编程模式的系列学习笔记第三篇。采用Qt Creator进行编写,但尽量采用C++基础语法。装饰模式(Decorator):动态地给一个对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。个人理解,就是定义一个抽象类功能接口,然后具体类和装饰类都继承这个接口。装饰类通过继承实现不同的装饰功能子类,通过对具体类装...

2019-02-23 00:10:15 145

原创 C++ 重载、重写、重定义的区别

本文是学习重载、重写、重定义的学习笔记。重载(overload):类中同名函数,通过参数不同,实现不同的功,返回值不同不能作为重载区别。重写(override):子类重写父类的虚函数,父类函数必须是virtual说明的,不能是static的,是C++实现多态的方式,让父类能调用子类的方法。重定义(redefining):子类重定义父类的同名非虚函数,参数可以同父类不同。一旦重定义,父类的同名...

2019-02-20 22:45:26 578

转载 (转载)深入解析C语言数组和指针

(转载)深入解析C语言数组和指针 原文地址:https://www.cnblogs.com/maluning/p/7955648.html 概述  指针是C语言的重点,同时也是让初学者认为最难理解的部分。有人说它是C语言的灵魂,只有深入理解指针才能说理解了C语言。暂且撇开这些观点不谈。这章是我在阅读《C和指针》这本书的读书笔记。在谈指针的同时我们也要谈谈数...

2019-02-20 12:06:32 475

原创 设计模式学习(二) 策略模式

策略模式场景描述设计思路代码执行结果这是个人学习编程模式的系列学习笔记第二篇。采用Qt Creator进行编写,但尽量采用C++基础语法。策略模式(Strategy):定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。个人理解,就是定义一个抽象类作为算法接口,然后子类按不同的方案实现这个接口。策略模式从类之间的关系来看,同简单工厂模式类...

2019-02-20 11:57:32 133

原创 如何按INT类型操作CHAR类型数组

这是学习指针的过程中遇到的一个问题的记录。因为C++指针指向具体的内存地址,开始以为按照内存地址的加减就可以进行任意内存数据区域的操作,实际测试的时候发现,定义的指针有不同的类型,比如:int * p;定义的是一个整数型指针。*(p+1)指向的是下一个整型数,也就是内存地址加4,不是内存地址加1。如果是字符型指针,则是地址加1,因为char占1个字节。如果要对char型数组按int型数据操...

2019-02-20 11:09:49 1092

原创 设计模式学习(一) 简单工厂模式

简单工厂模式场景描述设计思路代码执行结果欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导...

2019-02-18 15:43:40 146

转载 转 关于堆栈的讲解(我见过的最经典的)

这是一篇转发的文章 这是一篇转发的文章,yingms对他进行了格式化,原文出处不详。一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动...

2018-10-24 14:11:54 533

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除