
c++源码
mct123
这个作者很懒,什么都没留下…
展开
-
外观模式c++代码实现
外观模式--外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。原创 2014-06-24 10:56:12 · 653 阅读 · 0 评论 -
进程间使用信号量协调对共享资源访问c++代码实现
#include #include #include #include#include#includestatic int semid;//union semun要自己定义一下,否则gcc编译会报错union semun{ int val; struct semid_ds *buf; unsigned short *arry;};bo转载 2014-07-04 12:55:28 · 909 阅读 · 0 评论 -
线程之间利用信号量协调对共享资源访问的c++代码实现
首先要了解线程之间的信号量的系统函数原创 2014-07-04 15:20:06 · 777 阅读 · 0 评论 -
访问者模式的c++代码实现
百度了下访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。原创 2014-07-07 16:44:51 · 596 阅读 · 0 评论 -
责任链模式的c++代码实现
责任链模式:在责任链模式中,很多对象由每一个对象对其下家的引用而接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。客户并不知道链上的哪一个对象最终处理这个请求,系统可以在不影响客户端的情况下动态的重新组织链和分配责任。处理者有两个选择:承担责任或者把责任推给下家。一个请求可以最终不被任何接收端对象所接受。原创 2014-07-07 18:41:27 · 702 阅读 · 0 评论 -
命令模式的c++代码实现
命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。原创 2014-07-07 15:07:05 · 939 阅读 · 0 评论 -
装饰模式c++代码实现
装饰模式--动态地为一个对象而不是整个类增加一些功能的问题原创 2014-06-19 14:08:20 · 837 阅读 · 0 评论 -
可变参数的使用
可变参数的#include#includeusing namespace std;int max(int num,int s,...){ char *p;//va_list p; int m = s; int t; p = (char*)(&s) + sizeof(int);//va_start(p,s); for(int i = 1;i<num;i++)原创 2014-07-11 15:58:54 · 502 阅读 · 0 评论 -
linux上lseek的理解
每个打开文件都有一个与其相关联原创 2014-08-06 09:43:03 · 1888 阅读 · 0 评论 -
内存管理伙伴算法 模拟程序
#include #includeusing namespace std;#include#include#include#includestruct Block{ int start; int end; Block() { start=0; end =0; } int operator { return this->原创 2014-06-13 15:30:26 · 1469 阅读 · 0 评论 -
百度上的共享内存使用例子程序
例1:#include #include #include #include #include #include #define SIZE 1024int main()//子进程写一句话,父进程读{ int shmid ; char *shmaddr ; struct shmid_ds buf ; int flag = 0 ; int pid转载 2014-07-03 09:37:16 · 786 阅读 · 0 评论 -
享元模式c++代码实现
// flyweight.cpp : 定义控制台应用程序的入口点。//#include #include #include using namespace std;class Flyweight{public: //map会使用空构造 Flyweight() { } Flyweight(string intrinsicState原创 2014-06-23 16:20:51 · 595 阅读 · 0 评论 -
模板模式c++代码实现
模板--定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。原创 2014-06-24 15:17:19 · 584 阅读 · 0 评论 -
代理模式c++代码的实现
代理模式--代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 // proxy.cpp : 定义控制台应用程序的入口点。//#includeusing namespace std;class Subject{public: virtual void request() { cout << "Subject::re原创 2014-06-24 14:46:18 · 751 阅读 · 0 评论 -
策略模式c++代码实现
策略模式--策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。// strategy.cpp : 定义控制台应用程序的入口点。//#includeusing namespace std;class Strategy{ public: virtual void f() {原创 2014-06-24 17:47:56 · 758 阅读 · 0 评论 -
观察者模式的c++代码实现
观察者模式--观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。原创 2014-06-26 10:21:03 · 950 阅读 · 0 评论 -
备忘录模式的c++代码实现
备忘录模式--在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。原创 2014-06-26 14:51:35 · 851 阅读 · 0 评论 -
中介者模式的c++代码实现
中介者模式--用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的相互引用,从而降低耦合;而且可以独立地改变它们之间的交互。原创 2014-06-26 16:47:46 · 626 阅读 · 0 评论 -
状态模式的c++代码实现
状态模式--当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,可考虑用到状态模式。// state.cpp : 定义控制台应用程序的入口点。#includeusing namespace std;class Work;class State{public: virtual void work(Work &w)//上面的前置声明,这里才可原创 2014-06-25 17:40:44 · 544 阅读 · 0 评论 -
c,c++读写文件的使用整理
c风格的#include#define LEGNTH 1024int main(int argc,char *argv[]){ FILE *in,*out; in = fopen(argv[1],"r") char buf[LEGNTH+1] = {0}; if(NULL == in) { printf("fopen for read error\n");原创 2014-08-01 17:42:57 · 859 阅读 · 0 评论