- 博客(21)
- 资源 (1)
- 收藏
- 关注
转载 C++文件操作
原文地址:点击打开链接 C++文件流: fstream // 文件流 ifstream // 输入文件流 ofstream // 输出文件流 //创建一个文本文件并写入信息 //同向屏幕上输出信息一样将信息输出至文件 #include #include void main() { ofstream f1("d:\\me.txt"); //打开
2013-10-10 16:51:02
295
转载 内存对齐
转自: http://www.cppblog.com/snailcong/archive/2009/03/16/76705.html 首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include iostream> 4 5 using namespace std; 6 7 struct st1 8
2013-10-03 14:28:55
283
原创 适配器模式
主要是通过适配器来适配第三方接口。 图中右边两个关系分别代表以下两种实现。 //继承实现,也称类模式 class Target { public: Target(){} virtual ~Target(){} virtual void Request(){cout<<"Target::request"<<endl;} }; class A
2013-09-28 23:36:21
295
原创 Windows下套接字简要复习
1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。 举个简单的例子,对于整形0x12345678。它在大端法和小端法的系统内中,分别如图1所示的方式存放。 网络字节序 网络字节序说是大端字节序。 TC
2013-09-28 00:01:59
393
第五章RARP逆地址解析协议
RARP分组和ARP基本一致,主要差别是RARP请求或应答的帧类型代码为0x8035,而且RARP请求的操作代码为3,应答代码为4。 对应于ARP,RARP请求以广播方式传送,而RAR P应答一般是单播( u n i c a s t )传送的。
2013-09-24 22:19:51
158
原创 桥接模式
桥接模式的主要思想是通过组合来代替继承,从未避免类继承的过分膨胀。 将抽象部分与它的实现部分分离,使他们可以独立地变化。 C++代码: class AbstractionImp { public: virtual ~AbstractionImp(){} virtual void Operation() = 0; }; class ConcreteAbstr
2013-09-24 22:11:22
335
原创 第四章ARP地址解析协议和第五章RARP逆地址解析协议
ARP主要负责从逻辑Internet地址到对应的物理硬件地址的翻译。 ARP高速缓存 存放最近Internet地址到硬件地址之间的映射记录。高速缓存中的每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。 48bit的以太网地址用6个十六进制的数来表示。 以太网首部的目的地址为全1的话说明是广播。 操作OP有四种,ARP请求(1),ARP应答(2),RARP请求(3)
2013-09-23 22:16:57
329
原创 原型模式
主要是为了进行复制自身 拷贝分为浅拷贝和深拷贝,后者将会连带指针指向的内容一并拷贝。 C++中通过拷贝构造函数实现。 UML类图 C++代码: class Prototype { public: virtual Prototype* clone() const= 0; virtual ~Prototype(){} }; class
2013-09-23 20:57:11
344
转载 STL六大组件
1、容器(Containers):各种数据结构,如Vector,List,Deque,Set,Map,用来存放数据,STL容器是一种Class Template,就体积而言,这一部分很像冰山载海面的比率。 2、算法(Algorithms):各种常用算法如Sort,Search,Copy,Erase,从实现的角度来看,STL算法是一种Function Templates。 3、迭代器(Itera
2013-09-23 16:34:11
397
原创 简单的内存池分析
//代码引用了百度百科 typedef unsigned char UCHAR; template class GenericMP { public: static VOID* operator new(size_t allocLen) { if (!m_NewPointer) MyAlloc(); UCHAR* rp = m_NewPointer;
2013-09-23 16:21:08
360
原创 第三章IP网际协议层
IP数据报的格式。普通的IP首部长为20个字节,除非含有选项字段。 4字节的32bit值传输次序:0-7,其次8-15,然后16-23,最后24-31.这种传输次序为大端字节序,又称网络字节序。另外一种就是小端方式。 ------------------------------------------------------百度百科---------------------------
2013-09-22 23:46:08
405
原创 建造者模式
允许通过不同的建造次序来进行不同的建造。 UML图 实现代码: class Product { public: Product(){} ~Product(){} void Add(string part){vec_parts.push_back(part);} void Show() { for (size_t i = 0; i { cout部件" }
2013-09-22 22:33:13
307
原创 模板一
下面直接跳过第二部分的两个例子,随后我会分析的,直接进入模板这一章。 1首先说下容器该包含什么? C1.insert(obj),假如我们把obj放入C1中,当我们操作obj的时候是否会影响到C1,这里也就牵扯到两类:一种是指针,一种是值。 2当我们赋值的时候,一般采取值复制。 3另外获取容器的值,是得到类型T还是类型T&的对象? 4关于容器的读和写,当用[]进行读的时候,我们
2013-09-22 21:48:03
377
原创 单例模式
这一节是简单的单例模式,顾名思义也就是说一个类只能有一个对象。我们通过维护一个static的成员来记录这个唯一的对象实例。 把构造函数设为私有的,只能通过GetInstance来获得该类的实例 两种实现方法 class Singleton { public: static Singleton* GetInstance() { static Sing
2013-09-20 23:15:23
283
原创 第二章数据链路层
本章主要讨论以太网链路层协议,两个串行接口链路层协议(SLIP和PPP)以及大多数实现都包含的环回(loopback)驱动程序。对MTU(最大传输单元)的介绍,以及如何为串行线路选择MTU。 SLIP是一种在串行线路上对iP数据报进行封装的简单形式。 上面是对特殊字符的处理。 PPP:点对点协议 CRC是一个循环冗余检验码,以检测数据帧中的错误。
2013-09-20 22:26:33
347
原创 代理类和句柄类的一些认识
先看一个交通工具的类派生层次: class Vehicle { public: virtual double weight() const = 0; virtual void start() = 0; }; class RoadVehicle : public Vehicle { }; class AutoVehicle : publ
2013-09-19 13:23:23
395
原创 第一章概述
第一章概述主要从总体上讲述了整个个网络层的发展及相关技术。 主要分为: ① 引言 ② 分层 ③ TCP/IP的分层 ④ 互联网的地址 ⑤ 域名系统 ⑥ 封装 ⑦ 分用 ⑧ 客户-服务器模型 ⑨ 端口号 ⑩ 标准化过程 11 RFC 12 标准的简单服务 13 互联网 14 实现 15 应用编程接口 16 测试网络 引言没什么说的,直接从分层说起,TCP/IP
2013-09-18 23:48:14
417
原创 抽象工厂
昨天说到工厂只能创建一类类,而真正处理多种类型的类时,则需要用到抽象工厂模式,比如创建数据库类,ok有各类数据库,这时候都放在一个类中处理,显然是不合适的,就需要针对不同的数据库,创建不同的数据库类。、 Uml图 代码(C++) //抽象产品A class AbstractProductA { public: virtual ~AbstractProductA() =
2013-09-18 22:11:08
338
原创 TCP/IP学习
权衡了客户端和服务器端,还是爱上了服务器端,没有别的感觉架构服务器集群,让消息畅通无阻是多么惬意的一件事啊。之前在学校学计算机网络,其中简要介绍了tcp和udp以及四次和三次握手,也是一知半解,没有太深入的实践,如今看到了这本TCP-IP详解,决定好好研读一下它内部的实现。 TCP-IP详解总共分为三卷:卷一是协议,卷二是实现,卷三是TCP事务协议,HTTP,NNTP和UNIX域协议。 Lin
2013-09-17 23:09:00
261
原创 工厂模式
个人理解主要是定义了创建对象的接口,封装了子类创建的细节,不需要在客户代码中出现例如:new 子类,这样的书写,同时使得具体化类的工作延迟到了子类中。 Uml图 简单的代码实现: class Product { public: virtual ~Product() = 0{} protected: Product(){} }; cla
2013-09-17 22:35:26
293
原创 设计模式学习
到最后还是还是回到了设计模式的学习上面了,之前一直在看一些c++的技术书,主要是关于语法等方面的用法,一直没关心代码的组织,最近开始看了设计模式,也是一些简单的见解,毕竟自己还没做过大项目,呵呵,自己把自己理解的写下来,方便以后查阅。 下面是设计模式的分类,主要分为三大类。 一是创建型模式,主要是负责对象的创建。 二是结构型模式,负责类之间的相互组织。
2013-09-16 22:39:37
429
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅