自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

piaojun_pj的专栏

http://wotahouse.blogbus.com/

原创 Observer模式——行为模式

<br /><br />observer.h<br />#ifndef _OBSERVER_H_ #define _OBSERVER_H_ #include <string> using namespace std; typedef ...

2011-04-15 20:14:00 2655 6

原创 linux下C语言操作mysql数据库(系统自带版本3.23.54)

      我的上一篇blog介绍了在linux环境下如何安装配置系统自带的mysql数据库,并列举了mysql的一些简单的操作。接下来我将介绍一下如何利用mysql提供给我们的API来访问并操作mysql数据库(C语言)。首先,我们需要安装mysql-devel-3.23.54a-11.i386...

2011-04-12 23:58:00 3919 0

原创 redhat9安装配置mysql数据库(系统自带,版本3.23.54)

Mysql安装:首先,查看你的系统中是否已经安装了mysql,在终端里输入mysql,[root@localhost root]#mysqlbash: mysql: command not found说明系统中还没有安装mysql数据库,如果出现,说明已经安装了mysql数据库,那么跳过接下来的安...

2011-04-12 18:11:00 3562 0

原创 Flyweight模式——结构型模式

<br /><br /> <br />flyweight.h<br />#ifndef _FLY_WEIGHT_H_ #define _FLY_WEIGHT_H_ #include <string> using namespac...

2011-04-05 09:12:00 2210 0

原创 Strategy模式——行为模式

<br /><br /> <br />strategy.h<br />#ifndef _STRATEGY_H_ #define _STRATEGY_H_ class Strategy { public: virtual ~Strate...

2011-03-31 21:55:00 1951 0

原创 Template模式——行为模式

<br /><br />template.h<br />#ifndef _TEMPLATE_H_ #define _TEMPLATE_H_ class AbstractClass { public: virtual ~AbstractClass(...

2011-03-28 17:50:00 1835 0

原创 Proxy模式——结构性模式

<br /><br /> <br />proxy.h<br />#ifndef _PROXY_H_ #define _PROXY_H_ class Subject { public: virtual ~Subject(); vir...

2011-03-27 15:21:00 1918 0

原创 Facade模式——结构型模式

外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。facade.h#ifndef _FACADE_H_ #define _FACADE_H_ class SubSystem1; class SubSystem2; class Facade { ...

2011-03-26 01:28:00 1919 0

原创 Adapter模式——结构型模式

<br /><br /> <br />adapter.h<br />#ifndef _ADAPTER_H_ #define _ADAPTER_H_ class Target { public: Target(); virtual ...

2011-03-24 20:29:00 1888 0

原创 Bridge模式——结构型模式

<br /><br /> <br />tank.h<br />#ifndef _TANK_H_ #define _TANK_H_ class TankImpl; class Tank { public: virtual ~Tan...

2011-03-23 19:51:00 1858 0

原创 Bridge模式——结构型模式

<br /><br /> <br />tank.h<br />#ifndef _TANK_H_ #define _TANK_H_ class TankImpl; class Tank { public: virtual ~Tan...

2011-03-23 19:33:00 1626 0

原创 Singleton模式——创建型模式

<br /><br /> <br />Singleton.h<br />#ifndef _SINGLETON_H_ #define _SINGLETON_H_ class Singleton { public: virtual ~Si...

2011-03-22 22:09:00 1991 4

原创 AbstractFactory模式——创建型模式

<br /><br />factory.h<br />#ifndef _ABSTRACT_FACTORY_H_ #define _ABSTRACT_FACTORY_H_ class Product; class AbstractFactory {...

2011-03-21 12:10:00 1832 0

原创 FactoryPattern——创建型模式

<br /><br />以下代码已经在VC6.0中测试运行通过。<br />factory.h<br />#ifndef _FACTORY_H_ #define _FACTORY_H_ #include <string> usi...

2011-03-20 19:56:00 1870 0

原创 像一个电脑高手一样操作windows——windows常用快捷键大全

<br />一、常见用法:<br />F1           显示当前程序或者windows的帮助内容。<br />F2           当你选中一个文件的话,这意味着“重命名”<br />F3           当你在桌面上的时候是打开“查...

2011-03-06 10:45:00 2071 1

原创 细谈C/C++中的前置++和后置++

      ++运算符是大家都再熟悉不过的东西了,无论是在for循环里,还是在一些赋值语句中,都有++的身影。这里我和大家分享一下我对++的理解,若有不足之处欢迎批评指正啊。首先,看这样一段代码:#include using namespace std; int main() { ...

2011-02-27 14:22:00 3860 0

原创 如果你的电脑蓝屏了,请温柔的对她。。。

<br />      如果你的电脑蓝屏了,请不要气愤的说一句"fucking shit,damn it“,然后直接冷启动。你可以根据屏幕上显示的错误码来判断是哪出了问题,下面就是一些蓝屏的原因,仅供参考。<br /> 0 0x00000000 作业完成。 <...

2011-02-22 23:08:00 2444 0

转载 windows下DLL的编写

<br />      在VC中新建一个空的Win32动态链接库工程(Win32 Domanic-Link Library),然后添加一个C++ Sourse File到工程,我这里的文件名取DllTest.cpp。然后在文件中添加如下内容: //DllTest.cpp  _decls...

2011-02-09 21:09:00 4760 0

原创 linux库文件编写

静态库与动态库的区别:      如果程序是在编译时加载库文件的,就是使用了静态库。如果是在运行时加载目标代码,就成为动态库。换句话说,如果是使用静态库,则静态库代码在编译时就拷贝到了程序的代码段,程序的体积会膨胀。如果使用动态库,则程序中只保留库文件的名字和函数名,在运行时去查找库文件和函数体,...

2011-02-05 22:12:00 2778 1

原创 设置个性的windows XP开机音乐

<br />      每次开机都听XP的默认开机音乐已经让我感到厌烦了,不知道你是否也和我一样。如果是那就像我一样设置属于自己的个性windows开机音乐。具体步骤如下:<br />①在网上下载自己喜欢的开机音乐,要尽量短些,就像短信提示音一样(不让你的开机音乐会让你恶心...

2011-01-22 19:29:00 3033 0

原创 细谈const char ** 与 char ** 的区别

<br />#include "stdafx.h" #include <iostream> using namespace std; int main(int argc, char* argv[]) { const char ** p0=...

2011-01-12 19:21:00 3242 0

原创 搭建linux C语言开发环境——redhat9+vim+ctags+taglist+cscope

搭建linux C语言开发环境——vim+ctags

2011-01-02 00:20:00 9482 1

转载 细谈C++中的new和delete

/*****************************************************************************//*                        C++中的 new / delete                          ...

2010-12-31 21:01:00 1415 0

原创 linux下Epoll实现简单的C/S通信

<br />epoll的优点:<br />1.支持一个进程打开大数目的socket描述符(FD)<br />    select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM...

2010-12-28 20:27:00 18884 4

原创 socket编程小问题:地址已经被使用——Address already in use

很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端socket后还是有这个问题。正如下面的这段简单的socket程序。server.c#include ...

2010-12-25 22:07:00 104883 9

原创 细谈linux下的posix多线程编程

下面实现一个简单的多线程编程的例子。#include #include #include #include #include char message[]="Hello World!"; void * thread_function(void * ...

2010-12-22 13:15:00 2109 0

转载 select, poll和epoll的区别

<br />select()系统调用提供一个机制来实现同步多元I/O:<br /><br />#include <sys/time.h><br />#include <sys/types.h><br />#incl...

2010-12-08 23:17:00 1018 0

原创 细谈C++中的智能指针

      指针是C++语言的灵魂,也就是说想学好C++,就必须学好指针的用法。指针的灵活性给C++程序插上了一双翅膀,使C++程序员可以编写出更加飘逸的代码,但随之而来的则是令人烦躁的内存管理。在使用指针时,内存泄露的问题一直困扰着C++程序员。智能指针的出现使得内存泄露这一棘手的问题得到了相当...

2010-12-05 10:08:00 1632 1

原创 网络游戏服务器端架构设计

      一款大型的网游的开发主要由游戏策划,服务器端,客户端,美工,游戏测试,用户体验等几部分组成,其中服务器端的开发绝对是一个程序员大展身手的地方。只要你崇拜技术,热爱编程,在服务器端开发的世界里就有你的光芒。下面谈一谈服务器端的整体架构。      服务器端的整体架构如上图所示,首先,au...

2010-12-03 23:24:00 25991 2

原创 常见的HTTP错误码的具体含义

<br />"100" : Continue <br />"101" : witching Protocols <br />"200" : OK <br />"201" ...

2010-11-08 19:48:00 2319 0

原创 细谈select函数(C语言)

      Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发...

2010-11-06 16:50:00 127907 25

原创 细谈C语言中的main返回值

<br />      C语言几乎是所有人的第一个编程语言,而main函数则又是我们接触到的第一个函数。我们的所有程序都需要main函数,对于下面的代码,相信大家再熟悉不过了。<br /> #include <stdio.h> void main() {...

2010-11-04 10:00:00 28777 7

原创 细谈C++中的new和malloc

new和malloc的区别:1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者n...

2010-11-01 16:19:00 1538 1

原创 细谈volatile限定符——上海先锋商泰面试归来

volatile的本意是“易变的”,由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如: static int i=0; int main(void) {   ...   while (1)   {  if (i) doso...

2010-10-31 09:39:00 4104 1

原创 计算n!中结尾零的个数——上海先锋商泰面试归来

编程实现:计算n!中结尾零的个数。/*计算n!中结尾零的个数,返回结尾零的个数。*/int CalZeroNum(int n);

2010-10-30 20:17:00 8375 5

原创 寻找二叉树中两个节点的最近的公共祖先——迅雷笔试归来

      迅雷的笔试可真让人煎熬啊,题量很大,而且考试时间是三个小时。不过迅雷的题目质量很高,既考查了基础知识又不乏高难的数据结构和算法题目。下面和大家分享两道算法编程题,代码没有在编译器上调试,可能会出现一点小bug,感兴趣的朋友可以编译调试一下。题目1:将一个单链表逆转——原来的头指针变为尾...

2010-10-28 10:38:00 10344 10

原创 细谈C++中的强制转换——淘宝笔试归来

      将一种类型转换为另一种类型,转换后的变量,它的内部数据存储方式也随之发生改变,c++有四个显示的类型转换函数,reinterpret_cast,const_cast,static_cast,dynamic_cast.前面三个是在编译期间实现转换的,最后一个是在运行时实现转换,还可返回转...

2010-10-26 13:17:00 2871 0

原创 判断链表是否有环以及查找环的入口点——淘宝笔试归来

#include using namespace std; /*节点的类定义*/ class Node { public: int data; Node * next; Node(int data) { this->data=data; } }; ...

2010-10-25 22:29:00 4739 1

原创 任意进制整数之间的相互转换(C++实现)

      任意进制整数之间的相互转换经常出现在各大IT公司的笔试面试中,这里我对其中的算法和实现代码做个总结。算法思想:例如,要求将x1进制的数r1转化成为x2进制的数r2,首先应该将r1转化为十进制的数r_decimal,然后再将十进制数r_decimal转化为x2进制的数r2。(1下面是我用...

2010-10-25 08:08:00 18047 2

原创 细谈C语言中的字符串

对于初学者来说,C语言中对于字符串的操作稍显复杂,而且夹杂着指针的操作,这使得程序员稍微一不小心就会出现错误。C语言作为低级语言和高级语言的中间题,必然比不上java中的String来的舒服。但是,C语言的优秀体现在它的效率和接近底层环境。好了,不多说了,大家先看下面这一道某IT公司的笔试题。#i...

2010-10-23 14:49:00 2234 3

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