- 博客(15)
- 收藏
- 关注
原创 菱形继承二义性解决方法--虚拟继承
//虚拟继承是为了解决多重继承而出现的,比如/* A / \ B C \ / D如果直接class A{};class B : public A{}class C : public A{}class D : public B, public C{}那么在创建D的对象时候,将会生成2个A对象,1个B对象,1个C对象
2014-08-14 21:36:14 673
原创 公有继承、私有继承、保护继承的测试
测试代码如下,分析见注释#include using namespace std;class Base{private: int m_private;public: int m_public;protected: int m_protectd;};class PublicChild : public Base //在公有继承中,父类中除了私有的成员变量及成员函数,其他
2014-08-14 20:10:56 418
原创 单类及继承类的构造函数、赋值函数、拷贝构造函数等测试
先看测试代码#includeusing namespace std;class A{public: A() { cout << "A Constructor!" <<" Address :"<< this << endl; } A(int i) { cout << "A Constructor with Para!"<<" Address :"<< this
2014-08-14 20:08:36 384
原创 设计模式实现(二十)---职责链模式(Chain of Responsibility)
职责连模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并
2014-08-12 10:12:15 285
原创 设计模式实现(十九)---命令模式(Command)
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
2014-08-12 08:49:46 330
原创 设计模式实现(十八)---桥接模式(Bridge)
对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。
2014-08-12 07:53:34 369
原创 pthread-win32配置方法及pthread_mutex测试
1.下载pthreads-w32-2-8-0-release.exe下载地址:ftp://sourceware.org/pub/pthreads-win322. 安装pthreads-w32-2-8-0-release.exe 双击pthreads-w32-2-8-0-release.exe,点击Browse选择安装到的目录,然后点击Extract解
2014-08-04 19:01:53 1778
原创 设计模式实现(十六)---迭代器模式(Iterator)
迭代器在比较高级的语言如Java,C#,C++中都已经集成进语言中,所以平时使用的并不过。学习该设计模式
2014-08-01 21:43:27 372
原创 设计模式实现(十五)--- 组合模式(Composite)
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。何时使用组合模式:当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。组合模式这样就定义了包含人力资源部和财务部这些基本对象和分公司、办
2014-08-01 20:13:35 354
原创 设计模式实现(十四)--- 备忘录模式(Memento)
备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以讲该对象恢复到原先保存的状态。
2014-08-01 18:29:56 363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人