organic

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2015年5月23日

摘要: 上回《大话设计模式C++版——简单工厂模式》中指出了简单工厂模式的缺陷,即违背了开发—封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,如何改造switch结构,表驱动法就可以粉墨登场了。表驱动法的介绍见《数据驱动编程之表驱动法》。1、面向接口编... 阅读全文
posted @ 2015-05-23 10:38 organic 阅读(534) 评论(0) 推荐(0) 编辑

摘要: 简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器。1、抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程)class IOperation{public: IOperation() : m_nNuml(0), m_nNumr... 阅读全文
posted @ 2015-05-23 09:06 organic 阅读(250) 评论(0) 推荐(0) 编辑

2015年5月18日

摘要: 1、选择类F8当前位置变成选定区域的头/尾(再移动光标或者点鼠标就会选定)Ctrl + F8当前行变成选定区域的头/尾(再移动上下光标或者点鼠标就会选定多行)CTRL + W选择当前单词Ctrl + Shift + ←选定当前位置到前一个单词Ctrl + Shift + →选定当前位置到后一个单词S... 阅读全文
posted @ 2015-05-18 14:52 organic 阅读(357) 评论(1) 推荐(0) 编辑

2015年5月16日

摘要: 1、Codeint Work(){ while (m_lInterlockedData < 10) { InterlockedIncrement(&m_lInterlockedData); Sleep(100); } printf("CInterlocked::Work end\n"); ... 阅读全文
posted @ 2015-05-16 00:52 organic 阅读(228) 评论(0) 推荐(0) 编辑

摘要: 继承类研究1、Code1.1 Cbase, CTEST为基类,CTest2为其继承类,并重新申明了基类中的同名变量class CBase{public: int Data; CBase(); ~CBase();};class CTEST{ ... 阅读全文
posted @ 2015-05-16 00:44 organic 阅读(317) 评论(0) 推荐(0) 编辑

摘要: 一、原码分析1.1 测试代码 为了方便查看拷贝构造函数调用过程,自定义了拷贝构造函数,但啥也没干。class CTEST{public: int m_nData; //Method:public: CTEST() ... 阅读全文
posted @ 2015-05-16 00:32 organic 阅读(1024) 评论(0) 推荐(0) 编辑

摘要: 源自一道面试题,觉得很有意思class CBase{public: virtual void PrintData(int nData = 111);};void CBase::PrintData(int nData /* = 111 */){ ... 阅读全文
posted @ 2015-05-16 00:22 organic 阅读(894) 评论(0) 推荐(0) 编辑

摘要: 先看测试代码,CTEST继承自CBase,并包含一个CMember成员对象:static int nIndex = 1;class CMember{public: CMember() { printf("%d CM... 阅读全文
posted @ 2015-05-16 00:19 organic 阅读(428) 评论(0) 推荐(0) 编辑

2015年5月15日

摘要: 智能指针是为了解决程序员创建了资源而忘记释放造成内存泄漏的问题,可减少代码编写过程中的代码长度,减少程序员对资源管理的难度,因而在COM组件及各类插件中有广泛应用。1、智能指针的原理智能指针的原理是利用对象在离开作用域时会调用对象的析构函数,将资源指针封装进类中,并将资源指针的释放过程写入析构函数... 阅读全文
posted @ 2015-05-15 23:56 organic 阅读(380) 评论(0) 推荐(0) 编辑

摘要: 在编写组件程序时,经常会使用CoCreateInstance直接取COM组件的接口,非常方便,那CoCreateInstance到底干了些什么事呢?1、CoCreateInstance取COM组件的接口的基本流程//参数:rclsid = 组件CLSID//参数:riid = 接口IDWINOLEA... 阅读全文
posted @ 2015-05-15 23:49 organic 阅读(494) 评论(0) 推荐(0) 编辑