自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fire_Lord的专栏

切忌浮躁,做个合格的吊丝。

  • 博客(17)
  • 收藏
  • 关注

原创 C++设计模式之 -- 桥接模式 (Bridge)

定义桥接模式(Bridge Pattern) 是指将抽象部分与它的实现部分分离,使它们都可以独立的变化。例如:我们要实现一个对象,用来序列化数据,将数据序列化到磁盘上可能有多重方式,json 格式, XML 格式或者database 等。使用桥接模式,将具体的序列化实现部分分离开来,使得抽象和实现的部分可以独立的变化,增强了代码的扩展性。类图一个典型的桥接模

2015-07-21 20:55:06 748

原创 UML类图以及各种类之间的关系

每次在阅读或者画UML 图的时候,总是对各种类之间的关系区分的不是很清楚,最近在看《大话设计模式》,开篇的介绍非常详细易懂,赶紧整理一下,便于自己记忆。1. 继承关系继承关系表示一个类派生自另外一个类,用来实现多态。使用实线的空心三角形表示。下图所示表示 Bird 类 继承 Animal 类。2. 接口实现接口实现类似于继承,使用虚线的空心三角形箭头表示

2015-07-11 12:05:03 2821

原创 C++设计模式之 —— 原型模式 Prototype

什么是原型模式?    原型模式(Prototype)是指 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。    说白了,就是从一个对象创建另外一个同类型的可定制的对象,并且创建的过程隐藏了创建的细节。使得客户端在创建多个对象时更为简洁。 当一个类的构建比较复杂,而我们需要动态的进行创建,只有部分数据需要定制时,原型模式可以在隐藏创建细节的同时很好的确保代码的简洁。举

2015-07-08 21:40:44 1000

原创 C++实现设计模式之 —— 单例模式 Singleton

单例模式是最简单的创建型模式,当某个类只需要唯一的一份实例时,使用单例模式可以确保不会创建多余的实例。在C++ 中,单例模式可以避免全局变量的使用。下面是一个典型的线程安全的单例模式#ifndef Singleton_h__#define Singleton_h__#include //C++11class CSingleton{public: static CSinglet

2015-07-07 20:40:48 551

原创 Virus Shield 遭 google play 下架

一款声称无广告,低电量消耗的Android 手机病毒防护产品 Virus Shield 遭谷歌下架。其原因是该产品并没有提供任何功能。分析人士指出,该产品唯一提供的功能就是当用户点击按钮时改变按钮颜色,假装正在检查系统为用户提供保护。该款没有任何实际功能的产品售价为$3.99美金,并在下架之前已被下载超过1万次,排在google play 前列。这和前两年比较流行的 fake an

2014-04-10 09:00:35 1267

原创 Visual Studio 单元测试 C++ 版 —— 测试已有的工程

1. 简介  软件质量要求的提升迫使码农们越来越重视单元测试,测试驱动开发的观点受到更多人的支持。目前,支持单元测试的第三方框架也非常丰富,就C++而言,有gtest, CppTest 等。 Visual Studio 自带的单元测试框架也非常的便利。之前一直使用 gtest 进行测试,今天小试了一把VS 的测试框架,将配置过程记录下来。2. 如何对 exe 工程进行单元测试  假设已

2013-10-24 15:26:53 7087

原创 C++11 学习笔记(7) —— path, wpath

1. 简介    使用C++编程,经常涉及到对文件的相关操作,例如,判断文件是否存在、获取文件所在的路径名、遍历某个目录下的所有文件、创建新的目录等。在旧风格的C++编程中,一般通过操作系统提供的API、字符串操作等实现上述功能。    C++11 提供的 头文件提供了丰富的文件操作的类和函数。filesystem 库是一个可一直的文件系统操作相关的库,使用POSIX标准表示文件系统的路径

2013-07-02 07:57:23 6317 3

原创 C++11学习笔记(6) —— smart pointer: shared_ptr , auto_ptr

1. 简介C++程序员最痛苦的莫过于对内存的管理,由于没有像C# 和 java的内存回收机制,C++程序员在复杂的程序中容易造成内存的泄露。即使程序员十分小心,异常的产生也有可能会造成部分内存的泄露(由于异常导致delete语句没有机会执行)。为了避免该问题,出现了各种类型的智能指针。只能指针实质就是重载了-> 和 * 操作符的类,由类来实现对内存的管理,确保即使有异常产生,也可以通过智能指针

2013-01-30 14:26:23 5120

原创 C++11学习笔记(5) —— override and final

1.简介C++为我们提供了继承和虚函数的重写特性。 在派生类中,重写虚函数不强制要求使用 virtual 关键字,并且C++并没有要求强制检查虚函数的重写是否真正覆盖了基类的虚函数,因为在派生类中,也可以增添新的虚函数,以供下一级的派生类重写。由于检查的不够严谨,就有可能产生错误。2.有可能产生的错误最常见的错误就是派生类想要重写基类的虚函数,但是由于参数类型的不同,导致结果和预期不同

2013-01-25 10:16:13 2241

原创 C++11学习笔记(4) —— new for loops

1.简介C 语言和C++的for 循环语句的使用方式大家都十分熟悉,如果你了解C#语言,应该对 foreach 的使用方式印象深刻,它简化了 for 循环的书写方式。 C++11 为我们提供了两种类似 foreach 的循环方式,分别是 for 的新用法 和 for each (注意,有空格,不是foreach)2.旧风格的 for int testArray[] = {1, 2,

2013-01-24 17:44:25 3616 1

原创 C++11学习笔记(3)—— enum

1.简介以往的enum类型将枚举成员的作用域暴露在枚举变量之外,用户不需要指定枚举类型就可以直接使用枚举的内容,这就有可能会造成名字的冲突,为了解决该你问题,C++11引入了强类型的枚举类型(strongly typed enums ).2.旧风格的enum#include "stdafx.h"#include using namespace std;enum OldEnu

2013-01-22 22:04:55 1944

原创 通过WinDbg生成dump文件

在Windows开发环境下,通常使用Visual studio完成项目的开发以及调试,很少会用到WinDbg。WinDbg提供了强大的调试功能,在一些情况下,Visual Studio附带的调试工具无法完成调试工作,只有通过WinDbg来完成,例如,对dump文件的分析。1. dump 文件简介dump 文件是指内存转储文件,是系统在程序崩溃时将当前相关内存状态存储到硬盘上的文件,用于对系

2013-01-14 09:37:31 1944

翻译 CAtlRegExp class

CAtlRegExp Class CAtlRegExp 类用于表示并处理正则表达式。模板类,定义如下:template < class CharTraits = CAtlRECharTraits>class CAtlRegExp参数CharTraits字符特征对象.例如, 默认的

2013-01-14 09:35:31 2185

原创 使用 NetShareEnum 遍历本地共享目录需要注意的问题

1 简介Windows提供了NetShareEnum函数用于实现遍历服务器的共享目录,但在实现该功能时发现一个有关UNICODE和ANSI字符串的问题。2. 函数原型简介该函数原型如下:NET_API_STATUS NetShareEnum( LPWSTR servername, DWORD level, LPBYTE* bufptr, DWORD

2013-01-14 09:33:39 3839

原创 不同内存分配方式的区别 VirtualAlloc HeapAlloc malloc new

在进行Windows的学习过程中,经常看到不同的内存分配方式,例如VirtualAlloc, HeapAlloc, malloc和new。它们之间存在一些差异。(1) VirtualAllocPVOID VirtualAlloc(PVOID pvAddress, SIZE_T dwSize, DWORD fdwAllocationType, DWORD fdwProtect)V

2013-01-14 09:31:30 5238

原创 C++11学习笔记(2) —— decltype

1. 简介当我们想要方便的定义一个变量时,可以通过使用 auto 来定义变量,由编译器根据上下文推导出变量类型。但是,当我们想要推导一个表达式的返回结果类型时,auto 就无能为力了。decltype 可以解决该问题。2. 函数返回类型推导使用decltype可以动态获取函数的返回类型,如下所示#includeusing namespace std;int fun1(in

2013-01-14 09:29:22 1933

原创 C++11学习笔记(1) —— auto

C++11 的到来又为C++注入了新鲜的血液,更严格的类型检查,新的功能特性以及新收录的STL,都使得C++11更为安全和高效。笔者将C++11的学习过程记录下来,不对之处还望指正。IDE: vs20121.简介auto是C++早就具备的关键字(局部变量默认定义为auto类型),但是C++11中,auto被赋予了新的含义 —— 定义任意类型2.根据初始化推导类型

2013-01-14 09:27:21 2082 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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