摘要: 故事背景:考题抄错会做也白搭 1. 概述 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 2. 模式中的角色 2.1 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 2.2 具体类(ConcreteC 阅读全文
posted @ 2017-12-24 18:32 KeepInYourMind 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 故事背景:简历复制 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone), Clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。 代码如下: 总结: Prototype模式同工厂模式,同 阅读全文
posted @ 2017-12-24 15:50 KeepInYourMind 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 故事背景:雷锋依然在人间 概念: 工厂方法(Facotry Method)定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例延迟到其子类。 结构图: 注意点: (1)工厂方法克服了简单工厂违背开发-封闭原则的缺点,又保持了封装对象的创建过程的优点,集中封装了对象的创建,使得 阅读全文
posted @ 2017-12-17 20:26 KeepInYourMind 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1.代理模式简介 代理模式介绍 代理模式也叫委托模式,是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场景有很多,比如代购、代理上网、打官司等。 定义 为其他对象提供一种代理以控制这个对象的访问。 代理模式结构图 Subject:抽象主题类,声明真实主题与代理的共同接口方法。 RealSu 阅读全文
posted @ 2017-12-17 19:08 KeepInYourMind 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 复数: 我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位, i*i= -1; 复变函数: 四元数: 正如复数是有一个实部和一个虚部组成的,那我们将一个虚部换成三个虚部,即两两相交{i, j, k}。 其中n为三维的单位向量,i²=j²=k²=i·j·k=- 阅读全文
posted @ 2017-12-14 22:21 KeepInYourMind 阅读(8797) 评论(2) 推荐(0) 编辑
摘要: 什么是多态? 多态一词最初来源于希腊语,意思是具有多种形式或形态的情形,当然这只是字面意思,它在C++语言中多态有着更广泛的含义。 这要先从对象的类型说起!对象的类型有两种: 实例:Derived1类和Derived2类继承Base类 对象有静态类型,也有动态类型,这就是一种类型的多态。 多态分类 阅读全文
posted @ 2017-12-08 11:19 KeepInYourMind 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 智能指针的使用 智能指针是在 <memory> 标头文件中的 std 命名空间中定义的。 它们对 RAII 或“获取资源即初始化”编程惯用法至关重要。 此习惯用法的主要目的是确保资源获取与对象初始化同时发生,从而能够创建该对象的所有资源并在某行代码中准备就绪。 实际上,RAII 的主要原则是为将任何 阅读全文
posted @ 2017-12-07 13:15 KeepInYourMind 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 阅读全文
posted @ 2017-12-07 11:07 KeepInYourMind 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 故事:穿什么有这么重要? 定义: 装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 但是纯粹的装饰模式很难找到,大多数的装饰模式的实现都是“半透明”的,而不是完全透明的。换言之,允许装饰模式改变接口,增加新的方法。半透明的装饰模式是介于装饰模式和适配器模式之 阅读全文
posted @ 2017-11-28 21:55 KeepInYourMind 阅读(213) 评论(0) 推荐(0) 编辑
摘要: SOLID: S:单一职责原则 O:开放封闭原则 L:里氏代换原则 I:接口隔离原则 D:依赖倒转原则 1. 单一职责原则(SRP) 故事:手机拍摄UFO 定义:就一个类而言,应该仅有一个引起它变化的原因。 通俗讲就是我们不要让一个类承担过多的职责。如果一个类承担的职责过多,就等于把这些职责耦合在一 阅读全文
posted @ 2017-11-28 21:22 KeepInYourMind 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 故事:商场促销 策略模式:它定义算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 Context(应用场景): 1. 需要使用ConcreteStrategy提供的算法。 2. 内部维护一个strategy的实例。 3. 负责动态设置运行时strateg 阅读全文
posted @ 2017-11-27 21:54 KeepInYourMind 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 故事:代码无错就是优? 简单工厂模式又称为静态工厂方法模式(static factory method ),它不是GOF(Gang of Four, 四人组)所讲的23种设计模式之一,但却是实际中经常使用的方法之一。 实现:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有相 阅读全文
posted @ 2017-11-27 21:23 KeepInYourMind 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 一、位运算基本概念及简单运用 C语言提供了六种位运算符: & 按位与,即and运算 | 按位或,即or运算 ^ 按位异或 ~ 取反 << 左移,相当与*2 >> 右移,正数高位补0,负数由计算机决定 循环左移k次 (x<<k) | (x >> (32-k)), 循环右移k次 (x>>k) | (x 阅读全文
posted @ 2017-06-01 16:00 KeepInYourMind 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 概念 常量是存放固定且不可变值的,一旦确定初始值则在程序其它地方不可改变, 所以const对象必须初始化。常量一般使用const关键字来修饰。 const 对象可以大致分为三类: 1. const int a const int a =10; int const b =10; 这两种格式是完全相同的 阅读全文
posted @ 2017-06-01 14:16 KeepInYourMind 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/penelope/articles/2426577.html cin 、cout 基本说明: cin是标准输入流对象,代表标准输入设备(键盘),使用方法:cin >> 变量。功能:数据通过输入设备放在缓存区,cin从缓存区中读出数据存到变量中。 co 阅读全文
posted @ 2017-05-31 14:22 KeepInYourMind 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 进程与线程 进程:是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。 进程的概念主要有两点: 第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括 阅读全文
posted @ 2017-05-26 16:43 KeepInYourMind 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具;通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使 阅读全文
posted @ 2017-05-25 18:01 KeepInYourMind 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 泛型编程就是以独立于任何特定类型的方式编写代码,而模板是泛型编程的基础。 1)定义函数模板(function template) 函数模板是一个独立于类型的函数,可以产生函数的特定类型版本。 模板定义以关键字template开始,后接尖括号括住的模板形参表。 模板定义以关键字template开始,后 阅读全文
posted @ 2017-05-25 17:14 KeepInYourMind 阅读(546) 评论(0) 推荐(1) 编辑
摘要: 1.static_cast static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。 用法: 用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 用于类层次结构中基类 阅读全文
posted @ 2017-05-25 14:34 KeepInYourMind 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 一.引用的概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名. 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始化。 (4)引用声明完毕后 阅读全文
posted @ 2017-05-25 13:39 KeepInYourMind 阅读(273) 评论(0) 推荐(0) 编辑