Viki

如果不去尝试,那就没有如果

数据驱动编程之表驱动法

本文示例代码采用的是c语言。 之前介绍过数据驱动编程《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天更进一步,介绍一个稍微复杂,更加实用的一点手法——表驱动法。 关于表驱动法,在《unix编程艺术》中有提到,更详细的描述可以看一下《代码大全》,有一章专门进行描述(大概是第八章)。...

2015-05-23 11:19:58

阅读数:860

评论数:0

大话设计模式C++版——表驱动法改造简单工厂

上回《大话设计模式C++版——简单工厂模式》中指出了简单工厂模式的缺陷,即违背了开发—封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,如何改造switch结构,表驱动法就可以粉墨登场了。 表驱动法的介绍见《数据驱动编程之表驱动法》。 ...

2015-05-23 10:38:55

阅读数:1012

评论数:0

大话设计模式C++版——简单工厂模式

简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器。 1、抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程) class IOperation { public: IOperation() : m_nNuml(0),...

2015-05-23 09:06:44

阅读数:1364

评论数:0

大话设计模式C++版——原则和引言

读程杰的《大话设计模式》有一段时间了,将其C#版的设计模式代码用C++全部重新实现了一遍,并记下个人的一些心得,同时也对一些设计模式进行了改造。网上有份《大话设计模式实现(C++版)》的资料,但稍看后错误不少,比如用作接口的基类不将析构函数申明为虚函数,仅内部使用的成员变量不申明为private(...

2015-05-18 23:49:49

阅读数:831

评论数:0

VS2010最常用快捷键

1、选择类 F8 当前位置变成选定区域的头/尾(再移动光标或者点鼠标就会选定) Ctrl + F8 当前行变成选定区域的头/尾(再移动上下光标或者点鼠标就会选定多行) CTRL + W 选择当前单词 Ctrl + Shift + ← 选定当前位置到前...

2015-05-18 14:52:39

阅读数:320

评论数:0

Interlocked系列函数线程同步的缺陷

1、 Code int Work() { while (m_lInterlockedData < 10) { InterlockedIncrement(&m_lInterlockedData); Sleep(100); } printf("CInte...

2015-05-16 00:52:25

阅读数:421

评论数:0

C++浅析——继承类内存分布和虚析构函数

继承类研究 1、 Code 1.1 Cbase, CTEST为基类,CTest2为其继承类,并重新申明了基类中的同名变量 class CBase { public: int Data; CBase(); ~CBase...

2015-05-16 00:44:51

阅读数:528

评论数:0

C++浅析——返回对象的函数

一、原码分析 1.1 测试代码     为了方便查看拷贝构造函数调用过程,自定义了拷贝构造函数,但啥也没干。 class CTEST { public: int m_nData; //Method: public: C...

2015-05-16 00:32:33

阅读数:423

评论数:0

C++浅析——虚函数的动态和静态绑定

源自一道面试题,觉得很有意思 class CBase { public: virtual void PrintData(int nData = 111); }; void CBase::PrintData(int nData /* = 111 */) ...

2015-05-16 00:22:34

阅读数:504

评论数:0

C++浅析——继承类中构造和析构顺序

先看测试代码,CTEST 继承自CBase,并包含一个CMember成员对象: static int nIndex = 1; class CMember { public: CMember() { pr...

2015-05-16 00:19:54

阅读数:363

评论数:0

智能指针介绍

智能指针是为了解决程序员创建了资源而忘记释放造成内存泄漏的问题,可减少代码编写过程中的代码长度,减少程序员对资源管理的难度,因而在COM组件及各类插件中有广泛应用。 1、智能指针的原理   智能指针的原理是利用对象在离开作用域时会调用对象的析构函数,将资源指针封装进类中,并将资源指针的释放过程写入...

2015-05-15 23:56:14

阅读数:437

评论数:0

CoCreateInstance调用COM接口伪流程

在编写组件程序时,经常会使用CoCreateInstance直接取COM组件的接口,非常方便,那CoCreateInstance到底干了些什么事呢?1、CoCreateInstance取COM组件的接口的基本流程 //参数:rclsid = 组件CLSID //参数:riid = 接口I...

2015-05-15 23:49:50

阅读数:1314

评论数:0

PPAPI-NaCl编译环境搭建,没VPN的群众也可用

网上搭建环境见http://blog.csdn.net/xoyojank/article/details/8142630,安装网上搭建环境一般会出现文件下载错误,是由于一些文件在外网,容易被墙,需要有VPN支持,经过摸索可采用如下方式搭建。 1 下载安装goagent(fang qiang),网...

2015-05-15 23:38:35

阅读数:2831

评论数:0

编写NPAPI plugin的命名问题

最近写了个NPAPI的插件,在chrome上用得好好的,结果在火狐上死活不认我的插件,找了N多资料最后在官方的说明里才找到说火狐浏览器的插件的文件名必须是以np开头的,立刻吐血三升,难怪被chrome抛弃。

2015-05-15 23:37:37

阅读数:487

评论数:0

搜狗浏览器查看合法插件的方法

大家都知道在chrome中查看浏览器支持插件是在地址栏输入 chrome://plugins 即可,但搜狗浏览器虽然是基于chromium内核的,但用此方法却不行。  但可按F12调出控制台面板,然后输入navigator.plugins,是在地址栏只要是chromium内核的浏览器都可使用这种方...

2015-05-15 23:35:02

阅读数:1487

评论数:0

网页中调起本地程序系列——简介篇

由于网页及浏览器的各种限制,很多事情我们通过js等编码并不能达到我们想要的目的,我们需要调起本地执行程序来帮助我们做一些更强大的事情,这时候问题来了, 如何才能调起我们本地程序?下面列出目前可用的几种方法及其缺陷(主要以IE和Chrome浏览器为例)。 1、使用网页控件 1.1 IE浏览器 ...

2015-05-15 23:28:31

阅读数:661

评论数:0

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