自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DIYing

ELF-PE

  • 博客(35)
  • 资源 (10)
  • 收藏
  • 关注

原创 抽象工厂模式

#include <iostream>#include <string>using namespace std;class IUser{public: virtual void getUser()=0; virtual void setUser()=0;};class SqlUser:public IUser{public: void getUser()

2015-03-31 23:33:02 545

原创 观察者模式

#include <iostream>#include <string>#include <list>using namespace std;class Subject;class Observer{protected: string name; Subject *sub;public: Observer(string name,Subject *sub)

2015-03-31 17:14:09 415

转载 UML类图几种关系的总结

在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】

2015-03-31 16:11:23 429

原创 建造者模式(生成器模式)

#include #include #include using namespace std;class Product{private: vector product;public: void add(string str) { product.push_back(str); } void show() { vector::iterator iter=pr

2015-03-31 15:43:31 509

原创 外观模式

GOOD:为子系统的一组接口提供一个一致的界面。使用户使用起来更加方便。#include #include using namespace std;class Sub1{public: void f1() { cout<<"子系统的方法 1"<<endl; }};class Sub2{public: void f2() { cout<<"子系统的方法 2

2015-03-31 14:58:47 440

原创 模板方法模式

GOOD:  把不变的代码部分都转移到父类中,  将可变的代码用 virtual 留到子类重写 .#include#include #include using namespace std;class AbstractClass{public: void Show() { cout<<"我是"<<GetName()<<endl; }protected: virtua

2015-03-31 14:49:53 433

原创 原型模式

GOOD:  从一个对象再创建另外一个可定制的对象,  而无需知道任何创建的细节。 并能提高创建的性能。 说白了就 COPY 技术,把一个对象完整的 COPY 出一份。 #include #include using namespace std;class Prototype{private: string str;public: Prototype(string s) {

2015-03-31 12:07:53 528

原创 工厂方法模式

GOOD:修正了简单工厂模式中不遵守开放-封闭原则。工厂方法模式把选择判 断移到了客户端去实现,如果想添加新功能就不用修改原来的类,直接修改客户端即可。 #include #include using namespace std;class LeiFeng{public: void sweep() { cout<<"扫地"<<endl; } void wash()

2015-03-31 11:55:52 425

原创 代理模式

GOOD:远程代理,可以隐藏一个对象在不同地址空间的事实虚拟代理:通过代理来存放需要很长时间实例化的对象 安全代理:用来控制真实对象的访问权限 智能引用:当调用真实对象时,代理处理另外一些事#include #include using?namespace std //定义接口 class Interface?{ public: virtu

2015-03-31 11:38:41 418

原创 修饰模式

GOOD:当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需 要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能) ,就会增加类的复杂度。装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。 #include #include using n

2015-03-31 10:39:49 701

原创 设计模式和工厂模式的结合

//策略基类class COperation{ public: intm_nFirst; intm_nSecond; virtualdoubleGetResult() { doubledResult=0; returndResult; }};//策略具体类—加法类class AddOperation:publicCOperation{public: AddOpe

2015-03-30 18:09:50 512

原创 策略模式

//策略基类class COperation{ public: intm_nFirst; intm_nSecond; virtualdoubleGetResult() { doubledResult=0; returndResult; }};//策略具体类—加法类class AddOperation:publicCOperation{public: AddOpe

2015-03-30 17:39:36 543

原创 简单工厂模式

#include #include using namespace std;class Operation{public: double numberA,numberB; virtual double getResult() { return 0; }};class addOperation:public Operation{ double getResult(

2015-03-30 16:29:42 460

转载 网络编程释疑之:TCP连接拔掉网线后会发生什么

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yaocoder.blog.51cto.com/2668309/1589919背景:前些天团队在进行终端设备和服务器端长连接业务的测试时,发现了这么一个情况:在拔掉设备端的网线后,再插上网线,有时可以继续正常的进行长接连请求,而且用的还是拔掉网线之前的那个长连接。但是有

2015-03-28 22:13:51 1616 1

转载 类的const和非const成员函数的重载

转自:http://blog.csdn.net/anjy/article/details/1819126我们从一个例子说起,来看上一篇文章中的String类, 我们为它提供一个下标操作符([ ])以读写指定位置的字符(char)。只要了解过C++的操作符重载的语法,很快就可以写出下面这个[]操作符重载函数:char& operator[](int posion)    //

2015-03-28 08:49:37 609

转载 堆栈的作用,以及存放的数据

在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(Last-In/First-Out)堆和栈的区别 一、预备知识—程序的内存分配     一个由C/C++编译的程序占用

2015-03-25 19:18:54 4502

原创 为什么基类的析构函数是虚函数?

注:本文章内容大部分来自网站整理。1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html  a.第一段代码  #includeusing namesp

2015-03-25 19:12:10 597

原创 Ubuntu下配置支持samba共享

执行下列命令:$ sudo apt-get install samba$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak$ sudo mkdir -p /home/share$ sudo chmod 777 /home/share修改配置文件$ sudo vim /etc/samba/smb.c

2015-03-24 23:46:28 487

转载 【Linux学习】pthread_create主线程与创建的新线程之间退出关系

我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下。 1、  主线程等待新线程先结束退出,主线程后退出。正常执行。实例代码:[cpp] view plaincopyprint?#include "apue.h"  #include     pthread_

2015-03-24 10:43:43 900

原创 重载操作符

根据网上的帖子,整理如下:1 并不是所有的操作符都能被重载。除了. ,.* ,:: ,? : ,sizeof,typeid这几个运算符不能被重载,其他运算符都能被重载2 重载不能改变该运算符用于内置类型时的函义,程序员不能改变运算符+用于两个int型时的含义。3 运算符函数的参数至少有一个必须是类的对象或者类的对象的引用。这种规定可以防止程序员运用运算符改变内置类型的函义。4 重载不能改

2015-03-24 08:01:20 452

原创 select/poll/epoll对比

2015-03-22 22:47:23 506

原创 分布式数据包抓取系统

#include #include #include #include #include #include #include #include #include #include #include#include#includeusing namespace std;//////////////////////////////////////////////////

2015-03-21 22:23:01 840

原创 cannot find -lpthread以及conflicts with new declaration with ‘C’ linkage

cannot find -lpthread:正常情况下,libthread.so库是存在的。然后类似的其他工程也都有编译过了。找了很久发现是在windows下复制过来的makefile带有^M结尾的字符。删掉就好了。conflicts with new declaration with ‘C’ linkage:这种是在使用G++编译C代码的时候,不同的头文件包含了对同一个函数的声明

2015-03-21 15:21:53 1490

原创 VS 2008 Express

偶尔也需要在vs上工作,2008是我比较喜欢的。Just VS 2008 Expresshttp://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.isoVS 2008 Express SP1http://down

2015-03-20 23:32:34 1178

原创 Ubuntu下的MySQL安装与配置

1)首先检查系统中是否已经安装了MySQL            在终端里面输入 sudo netstat -tap | grep mysql           若没有反映,没有显示已安装结果,则没有安装。若如下显示,则表示已经安装                 2)如果没有安装,则安装MySQL.          在终端输入 sudo apt-g

2015-03-19 21:26:09 668

原创 僵死进程

僵死进程简而言之就是:子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程。在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵死进程,无法正常结束,

2015-03-19 14:11:25 618

原创 Linux下组播&广播消息小例子

组播:// 发送端#include #include #include #include #include #include #include #include #include using namespace std;int main(){ setvbuf(stdout, NULL, _IONBF, 0); fflush(stdout); int

2015-03-18 00:09:28 739

原创 通过socket发送结构体

c/c++通过socket发送结构可以直接先将结构转化到内存中,再通过send直接发送。 在网络通讯过程中往往涉及一些有关联的参数传递,例如数组,结构体之类的。对于结构体其实方法挺简单,由于结构体对象在内存中分配的空间都是连续的,所以可以将整个结构体直接转化成字符串发送,到了接收方再将这个字符串还原成结构体就大功告成了。 首先,我们建立一个结构体。 struct UsrDa

2015-03-17 23:27:08 1348

原创 c++中的模版和多态之间的关系

表面上看:模板与多态本身就是两个东西。模板实例化是发生在编译期(Compile-time)的,而多态中的函数调用决议是发生在运行时(Run-time)。实际上:模板是静多态,模板是在编译时确定的,而平时我们说的多态是动多态,是在运行时确定。也就是多态分为两种:静多态和动多态。

2015-03-16 23:24:29 1706

原创 socket 断线检测 心跳检测

心跳包:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。    在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处理断线可

2015-03-16 16:44:20 3386

转载 vector,map,list,queue区别--总结的不错

1。vector  (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,有一个重新分配更大空间,然后拷贝的性能开销.2。deque (小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有vector快)快速的访问随机的元素,快速的在

2015-03-16 13:33:38 998

原创 条件变量&互斥锁的使用

线程间的同步技术,主要以互斥锁和条件变量为主.  这是为了避免多线程调度,对数据的修改产生不同步,从而导致条件变量失效的情况。 void *threadone(void *arg) { pthread_mutex_lock(&qlock); while(a<b) { pthread_co

2015-03-16 12:17:51 592

原创 strdup

头文件:#include 定义函数:char * strdup(const char *s);使用man来看一下:       The strdup() function returns a pointer to a new string which is a duplicate of the string s.  Memory for the new string i

2015-03-15 10:03:10 1154

原创 linux上localtime函数返回的指针

最近在做一个spider,封装的log宏如下:#define SPIDER_LOG(level, format, ...) do{ \ if(level >= g_conf->log_level) {\ time_t now = time(NULL); \ char msg[MAX_MESG_LEN]; \ char buf[32]; \ sprintf(msg, for

2015-03-14 09:17:35 1522

原创 不同平台编译选项出现的位置不同

Ubuntu:g++ -o spider bloomfilter.o confparser.o crc32.o dso.o hashs.o md5.o qstring.o sha1.o socket.o spider.o threads.o url.o   -rdynamic -lpthread -levent -lcrypt -ldlcenos:g++ -o spider -rdyn

2015-03-12 12:41:22 615 1

C语言初学者入门讲座C语言初学者入门讲座

C语言初学者入门讲座C语言初学者入门讲座C语言初学者入门讲座C语言初学者入门讲座

2010-05-21

C和C++算法与描述

C和C++算法与描述。有一定基础者可以好好学习一下。保证令人刮目。下下下来。以后有用的。

2010-04-22

常见电脑故障处理方法常见电脑故障处理方法

常见电脑故障处理方法常见电脑故障处理方法常见电脑故障处理方法常见电脑故障处理方法

2010-04-15

如何挽救软盘文件如何挽救软盘文件

如何挽救软盘文件如何挽救软盘文件如何挽救软盘文件如何挽救软盘文件

2010-04-15

网站设计的思考网站设计的思考

网站设计的思考,设计高手箴言,菜鸟变大鸟。

2010-04-15

我要破解文集之再续篇

我要破解文集之再续篇,无往不胜的破解大全,谁与争锋的利刃!!

2010-03-19

年度巨献电脑知识及技巧大合集

电脑知识大全,让你成为电脑高手的捷径。吐血推荐!!!

2010-03-19

dos下关闭木马后门病毒端口使用教程.rardos下关闭木马后门病毒端口使用教程.rar

木马后门病毒端口使用教程.rardos下关闭木马后门病毒端口使用教程.rar

2010-02-13

入侵问题及防范措施新人入侵常见问题及WEB防范措施基础\623xr\新人入侵常见问题及WEB防范措施基础

新人入侵常见问题及WEB防范措施基础\623xr\新人入侵常见问题及WEB防范措施基础

2010-02-13

空空如也

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

TA关注的人

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