- 博客(13)
- 资源 (2)
- 收藏
- 关注
转载 字符串转换为整数
enum Status {kValid = 0, kInvalid};int g_nStatus = kValid;///////////////////////////////////////////////////////////////////////// Convert a string into an integer///////////////////////////////////////////////////////////////////////int StrToInt(const ch
2011-02-22 17:26:00 800
原创 UML基础
<br />UML:统一建模语言<br />用例图:<br /> 用来描述系统提供的一个功能单元。也就是将参与者与用例之间的关系描述出来。通过此图可以得知系统要实现的重要功能。<br />类图:<br /> 用来描述类与类之间的关系,及类自身细节。<br />序列图:<br /> 用来描述某几个用例之间的流程关系。也描述了某个功能中几个类之间的流程关系。<br /> <br />转:<br />用例图<br />描述了系统提供的一个功能单元。用例图的主要目的是
2011-02-22 10:37:00 490
转载 QTableWidget美化方法
<br /> <br />QTableWidget* table = new QTableWidget(3,4,this);<br />table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);<br />table->setFixedSize(640,480);<br />//verticalHeader<br />table->verticalHeader()->setStyleSheet<br />("QHeaderView::sec
2011-02-21 14:27:00 1785
转载 VC6.0制作简单的avi视频播放器
<br />目前,专门用于设计多媒体应用的软件很多。而VC6.0也提供了一种动画控件来实现简单多媒体动画文件的播放。我们创建一个基于对话框的工程,取名为player,具体步骤如下:<br /><br /><br /> 图1<br /><br /> 用MFC AppWizard(exe)创建一个名为player的工程,单击OK,单选Dialog based。接下来连续点击Next三次,单击Finish,最后点击OK。C++就自动生成一个对话框。为使其具有自己的风格,可用Mouse点击上面已有的按钮(【确定
2011-02-21 10:04:00 6150 1
转载 select模型使用例子
<br />在windows平台构建网络应用,必须了解socket I/O模型。windows提供了选择(select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I /O(overlapped I/O)和完成端口(completion port)。 <br /><br />一、客户端代码C++代码 #include "stdafx.h" #include <WINSOCK2.H> #include <stdio.h> #pragma comment
2011-02-17 11:31:00 4035
转载 socket同步异步阻塞非阻塞区别
<br />首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.<br /><br />举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了.<br />前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触发机制(在这里是柜台的人)通过某种机制(在这里是写在小纸条上的号码)找到等待该事
2011-02-17 10:50:00 2840
原创 完成端口
<br />高并发服务器的实现方式一般有三种:<br />1.线程池<br />2.select机制<br />3.完成端口<br />完成端口模型创建过程<br />1.创建一个完成端口(HANDLE g_CompletionPort = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0)))<br />2.创建一个服务工作线程A,其职责循环调用GetQueuedCompletionStatus(GetQueuedCompletionStatu
2011-02-16 17:19:00 65
转载 设计模式解析
<br />1)Gof并不适合于初学者。初学设计模式的一般都是从Gof入门开始学习的,不幸的是,这不是一本好的教科书,而把这本书称为一本奠定了设计模式理论基础的开山之作也许好一些,它把这些散落在各个设计中的常见模式收集起来,从此开始有了一个名词叫做"Design Pattern".说这本书不是一本好的教科书主要是以下的几个原因:a)对设计模式或者说面向对象里面的一些原则性的东西解释的不够多不够彻底,比如"面向接口编程而不是对实现编程","优先采用组合而不是继承"等等,以至于后面看到各个模式的实现的时候很多模
2011-02-15 11:22:00 82
原创 工厂模式
<br />工厂模式的几种形态: <br />1、简单工厂模式,又叫做静态工厂方法(Static Factory Method)模式。 <br />2、工厂方法模式,又称为多态性工厂(Polymorphic Factory)模式 <br />3、抽象工厂模式,又称工具(Kit或ToolKit)模式 <br /> <br />1.简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。 <br />它是由一个工厂对象决定创建出哪一种产品类的实例。 <br /> 简单
2011-02-15 11:00:00 59
原创 虚基类的理解
<br />如果某个派生类的部分或全部直接基类是从另一个共同的基类派生而来,在这些基类中,从上一级基类继承来的成员就有相同的名称,则在这个派生类中访问这个共同的基类中的成员时,可能会产生二义性,此时,可定义虚基类。这就要求在其直接基类的定义中,使用关键字virtual将那个共同的基类定义为虚基类,其语法形式如下: <br /> class 派生类名: virtual 派生方式 基类 <br /> 虚基类的初始化与一般的多重继承的初始化在语法上是
2011-02-14 17:02:00 715
原创 C++虚函数-2
<br />1. 纯虚析构函数<br /><br /> 析构函数的纯虚性唯一效果就是保证抽象类的实例化。<br />2.虚函数 <br /><br />【1】在基类用virtual声明成员函数为虚函数。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用。<br /><br />【2】在派生类中重新定义此函数,要求函数名、函数(返回)类型、函数参数个数和类型与基函数的虚函数相同。如果在派生类中没有对基类的虚函数重定义,则派生类简单地继承直接基类的虚函数。<br /><br />【3】
2011-02-14 15:36:00 118
转载 C++虚函数理解简介
<br />C++中虚函数的作用就是实现多态,具体就是通过父类指针指向子类的实例化,然后通过父类指针调用实际子类的成员函数。<br />虚函数是通过虚函数表实现的,具体示例:<br />下面,我将分别说明“无覆盖”和“有覆盖”时的虚函数表的样子。没有覆盖父类的虚函数是毫无意义的。我之所以要讲述没有覆盖的情况,主要目的是为了给一个对比。在比较之下,我们可以更加清楚地知道其内部的具体实现。 一般继承(无虚函数覆盖)<br />下面,再让我们来看看继承时的虚函数表是什么样的。假设有如下所示的一个继承关系: <br
2011-02-14 14:36:00 731
转载 STL几种容器的区别简介
虽然这几种都用过了,但对于它的理解还没有形成概念性的知识,看过这个后觉得形成了框架性的知识,觉得很有用,所以转载。vector - 会自动增长的数组<br />vector又称为向量数组,他是为了解决程序中定义的数组是<br />不能动态改变大小这个缺点而出现的。<br />一般程序实现是在类创建的时候同时创建一个定长数组,<br />随着数据不断被写入,一旦数组被填满,则重新开辟一块更大的内存区,<br />把原有的数据复制到新的内存区,抛弃原有的内存,如此反复。<br /><br />由于程序自动管理数
2011-02-14 11:13:00 2623
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人