代码改变世界

随笔分类 -  C++

设计模式(10)--观察者模式

2016-11-07 23:44 by sylar_liang, 174 阅读, 收藏,
摘要: //10.观察者模式 //ver1 class StockObserver; //与 Secretary 相互依赖; 所以提前声明 class Secretary; //股票同事类 class StockObserver { private: string _name; Secretary * _ps; public: StockObserver(string name, Secreta... 阅读全文

设计模式(9)--建造者模式

2016-11-07 23:36 by sylar_liang, 161 阅读, 收藏,
摘要: //建造者模式(或叫生成器模式),将一个复杂对象的构建与它的表示愤慨,使得同样的构建过程可以创建不同的表示。 //如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。 //抽象类 class PersonBuilder { protected: char * _pg; //Graphics * _pg; 用char来代替,通过编译 c... 阅读全文

设计模式(8)--外观模式

2016-11-04 00:29 by sylar_liang, 188 阅读, 收藏,
摘要: //迪米特法则: 也叫最少知识原则。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。//如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。//前提: 在类的结构设计上,每一个类都应当尽量降低成员的访问权限。//根本思想: 强调了类之间的松耦合。 //外观 阅读全文

设计模式(7)--模板模式

2016-11-04 00:08 by sylar_liang, 156 阅读, 收藏,
摘要: //7.模板模式 //ver1 //考试试卷类 class TestPaper { public: void TestQuestion1(){} void TestQuestion2(){} virtual string Answer1() { return ""; } virtual string Answer2() { return ""; } }; class ... 阅读全文

设计模式(6)--原型模式

2016-11-03 00:37 by sylar_liang, 194 阅读, 收藏,
摘要: //操作步骤://1.声明一个抽象基类,并定义clone()函数未纯虚函数。//2.实例化各个子类,并且实现复制构造函数,并实现clone()函数. 阅读全文

设计模式(5)--工厂模式

2016-11-03 00:15 by sylar_liang, 245 阅读, 收藏,
摘要: //简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,//对于客户端来说,去除了与具体产品的依赖。 //工厂模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。//工厂模式实现时,客户端需要决定实例化哪一个工 阅读全文

设计模式(4)--代理模式

2016-11-02 22:04 by sylar_liang, 170 阅读, 收藏,
摘要: //代理模式场合://一.远程代理。也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。//二.虚拟代理。是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。//三.安全代理。用来控制真实对象访问时的权限。//四.智能指引。当调用真实的对象 阅读全文

设计模式(3)--装饰模式

2016-11-02 01:07 by sylar_liang, 215 阅读, 收藏,
摘要: //装饰模式: 动态地给一个对象添加一些额外的职责,就增加功能类说,装饰模式比生成子类更为灵活; //如果只有一个ConcreteComponent类而没有抽象的Component类,那么Decorator类可以是ConcreteComponent的一个子类。//如果只有一个ConcreteDeco 阅读全文

设计模式(2)--策略模式

2016-11-01 01:17 by sylar_liang, 219 阅读, 收藏,
摘要: 策略模式: 定义算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到算法的客户. //另一种更好的模式可能是 反射模式。 阅读全文

写加密文件内容

2016-05-13 18:31 by sylar_liang, 238 阅读, 收藏,
摘要: 这个类写得很烂。 chBuffer 使用前要 memset 初始化一下,否则会报: Run-Time Check Failure #2 - Stack around the variable '' was corrupted. class EncryFile { public: void Crypt 阅读全文

C++ socket与Flex as3通信的沙盒问题解决

2015-07-14 17:44 by sylar_liang, 333 阅读, 收藏,
摘要: 地址:http://www.cnblogs.com/sevenyuan/archive/2012/06/20/2556494.html可新开一个socket服务端监听843端口,专门用于处理as3发来的沙盒请求。处理后再把连接关闭即可。// 额外的一个问题AS3读取C++socket发送来的数据,提... 阅读全文

一些常用的基础函数实现

2015-06-09 22:35 by sylar_liang, 146 阅读, 收藏,
摘要: 1.求公约数// return the greatest common divisorint gcd(int v1, int v2){ while(v2) { int temp = v2; v2 = v1%v2; v1 = temp; } return v1;}2. 阅读全文

C++使用hash_map时警告

2015-03-20 14:07 by sylar_liang, 656 阅读, 收藏,
摘要: windows 与 linux 的头文件区别:#if defined(WIN32) || defined(WIN64) #include using namespace stdext;#else #include using namespace __gnu_cxx;#endif编译出现警告... 阅读全文

容器

2015-02-06 01:01 by sylar_liang, 258 阅读, 收藏,
摘要: 1.顺序容器(序列式容器):vector:支持快速随机访问list:支持快速插入/删除deque:双端队列关联式容器:set,multiset,map,multimap顺序容器适配器stack:后进先出(LIFO)堆栈queue:先进先出(FIFO)队列priority_queue:有优先级管理的队... 阅读全文

C++ 工厂模式

2015-02-03 18:37 by sylar_liang, 233 阅读, 收藏,
摘要: 1.简单工厂模式特点:需要在工厂类中做判断,从而创造相应的产品enum eTYPE{ MASTER, SOLIDER}; // 法师、战士// 虚基类class Role{public: virtual void show() = 0; virtual void Init() = 0;}... 阅读全文

C++类模板的使用

2015-02-02 17:52 by sylar_liang, 478 阅读, 收藏,
摘要: 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。1.函数模板例:templateT max(T a, T b){ return (a>b)?a:b; }使用:int main(int... 阅读全文