自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Winsock IO模型之WSAAsyncSelect模型

该模型允许应用程序以Windows消息的形式接收网络事件通知,满足现在许多对性能要求不高的网络应用程序。MFC中的CSocket类也使用了它。    WSAAsyncSelect函数自动把套接字设为非阻塞模式,并且为套接字绑定了一个窗口句柄,当有网络事件发生时,便向这个窗口发送消息。    int WSAAsyncSelect(          SOCKET s,

2011-11-29 22:51:00 931

转载 C++实现Creational - Factory Method模式

设计模式的终极原理,本质上来说就是区分“变化的部分”和“稳定的部分”,并在此基础上,通过某种机制将此两者分离开来。此处所言之“变化”和“稳定”均为相对概念。在实现上,“稳定的部分”通常以抽象的形式出现,“变化的部分”通常以具体的类出现。 在Simple Factory模式中(详见http://patmusing.blog.163.com/blog/static/13583496020100

2011-11-29 21:20:14 635

转载 C++实现Creational - Simple Factory模式

Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例,通常这个类都有一个公共的父类和一些公共的方法。需要说明的是Simple Factory模式并非GoF所定义的23个设计模式中的一员。 在国外,关于一个人的全名,通常有两种写法:一个人的姓名,如果中间有“,”,则姓在前,名在后;如果中间没有“,”,那么空格前为名,后为姓。比如:“Bill Gates”

2011-11-28 23:02:37 668

原创 Winsock IO模型之select模型

之所以称其为select模型是因为它主要是使用select函数来管理I/O的。这个模型的设计源于UNIX系统,目的是允许那些想要避免在套接字调用上阻塞的应用程序有能力管理多个套接字。    int select(         int nfds,                                                 // 忽略,仅是为了与Berkeley套接字兼

2011-11-28 22:32:29 2027

原创 GTest && GMock

GTest和GMock简介 Google开源C++单元测试框架的简称为GTest,其下载地址为:http://code.google.com/p/googlemock/downloads/list (下载是Gmock,但其中已包含Gtest)。它支持的操作系统为Windows/Linux/Unix,支持的编译器为:VC.Net/gcc4.0(及以上版本),Mingw(据说需修改一些源码),BC

2011-11-28 17:03:01 14584

转载 动态分配资源的自动释放 – auto_ptr的实现原理

动态分配资源的自动释放的英文是 Resource Allocation In Initialization,通常缩写成RAII。根据《C++ Primer》第4版:“During stack unwinding, the function containing the throw, and possibly other functions in the call chain, are

2011-11-27 16:20:50 878

转载 类在其自身的定义体内作为数据类型

只有static成员变量,指针或者引用,才可以在一个类的定义体内,用本类作为数据类型,如:class Bar{public:                  ......private:                  static Bar member1;                            //OK                  Bar*

2011-11-27 16:17:45 641

转载 C++实现Creational - Singleton模式

Singleton设计模式经常被大家谈及,很多人认为该模式很简单。的确,从纯粹的设计模式的角度来看,它并不复杂,但是从实现的角度来看,其实非常不简单,尤其是用C++去实现它的时候。 一、Java版本的Singleton模式实现我们不妨先看看在Java中实现Singleton模式的典型代码:// Singleton设计模式典型代码package Singleton;publi

2011-11-27 16:15:28 552

转载 类设计规则

前两天,看了一篇关于类设计的博客,感触颇深。虽然这篇博客是通篇介绍java类设计的原则,但其精髓和所表达的思想其实无论什么语言都可以适应。很多c++的程序员,虽然写了几年的code,但往往把握不了面向对象的精神所在。这篇介绍类设计原则的博客,其实很多思想都跟设计模式的本质思想融合在了一起。现转此如下:3.2 类设计的基本原则   类是属性和方法(行为)的容器,但它不是垃圾桶,更不能是四像八

2011-11-26 22:28:15 935

转载 c++中的异常

本人对此转载文章添加若干注释。1.简介1.1常用的错误处理方式1.2 不常用的处理方式1.3 异常2. 异常的语法2.1 try2.2 catch2.3 throw2.4 函数声明3. 异常使用技巧3.1 异常是如何工作的    3.1.1 unwinding stack    3.1.2 RTTI3.2 是否继承std::exception

2011-11-23 21:59:07 683

原创 处理new分配失败

1993年前,c++一直要求在内存分配失败时operator new要返回0,现在则是要求operator new抛出std::bad_alloc异常。很多c++程序是在编译器开始支持新规范前写的。c++标准委员会不想放弃那些已有的遵循返回0规范的代码,所以他们提供了另外形式的operator new(以及operator new[])以继续提供返回0功能。这些形式被称为“无抛出”,因为他们没用过

2011-11-21 21:07:21 4190

原创 vc2008常用快捷键

F5 :调试运行 Ctrl + F5:不调试直接运行F10:单步执行,不进入被调函数内F11 :单步执行,进入被调函数内  Shift + F11 :返回至上层堆栈F9:设置或取消当前行断点Alt + F9:打开断点窗口Ctrl + F7:编译当前文件Alt + F8:选中区域或当前行格式对齐F12:跳到函数定义处Ctrl + F2 :当前行设置或取消书签

2011-11-16 21:43:15 859

转载 C++ 命名规则

通则:1、在所有命名中,都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写,除非该名字描述的是中文特有的内容,如半角、全角, 声母、韵母等。2、所有命名都应遵循达意原则,即名称应含义清晰、明确。3、所有命名都不易过长,应控制在规定的最大长度以内。4、所有命名都应尽量使用全称。5、如果命名使用缩写,则应该使用《通用缩写表》(见附录)中的缩写;原则上不推荐使用《通用缩写表》以外的

2011-11-15 12:59:11 1185

空空如也

空空如也

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

TA关注的人

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