- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 RAII
<br />来源:http://blog.csdn.net/zhaowei123191/archive/2010/05/24/5617637.aspx<br /> <br />1. 概念<br />所谓RAII,即Resource Acquisition Is Initialization,资源分配即初始化,意思是一旦获得一个资源就立即将它放入一个管理对象,这样就可以使用对象的构造和析构函数管理对象。为什么要用RAII呢,请先看下面的例子:<br />2.为何使用RAII<br />假设我们使用
2010-10-30 18:59:00 353
转载 软件的内聚性和耦合性
来源:http://hi.baidu.com/rooot/blog/item/30db2308b5380ed763d98617.html模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。<br />内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚是从功能角度来度量模块内的联系。<br />内聚有如下种类,他们之间的内聚性由弱到强排列为偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。<br />耦合性是模块间互相连接的紧密程
2010-10-26 08:57:00 1793
转载 #pragma pack(n)
<br />事实上,很多人对#pragma pack的理解是错误的。<br />#pragma pack规定的对齐长度,实际使用的规则是:<br />结构,联合,或者类的数据成员,第一个放在偏移为0的地方,以后每个数据成员的对齐,<br />按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。<br />也就是说,当#pragma pack的值等于或超过所有数据成员长度的时候,这个值的大小将不产生任何效果。而结构整体的对齐,则按照结构体中最大的数据成员 和 #pragma pa
2010-10-25 22:40:00 297
转载 类的私有继承
<br />如果两个类之间的继承关系为私有,编译器一般不会将派生类对象(如Student)转换成基类对象(如Person)。这就是上面的代码中为对象s调用dance会失败的原因。第二个规则是,从私有基类继承而来的成员都成为了派生类的私有成员,即使它们在基类中是保护或公有成员。行为特征就这些。
2010-10-24 08:46:00 292
转载 进程、线程
来源:http://zhidao.baidu.com/question/12014927.html进程和程序区别和联系表现在以下方面:1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是 一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。 进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因 调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被 撤消。反映了一个程序在一定的数据集上运行的全部动态过程。2)进程和程序并不是一一对应的,一个程序执行在
2010-10-23 08:48:00 332
转载 原码、补码、反码
<br />来源:http://www.cnblogs.com/tenghoo/archive/2008/06/01/1211663.html<br /> <br />(1)原码表示法<br /> 原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。<br /> 例如,X1= +1010110<br /> X2= 一1001010<br /> 其原码记作:<br />
2010-10-22 17:29:00 206
转载 ddl
<br /> 动态链接库的概念 动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。<br /> 动态链接库文件的扩展名一般是dll, 也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用 程序直接或间接调用。 <br /> 动态链接是相对于静态链接而言的。所谓静态链接是指把要
2010-10-22 17:16:00 274
转载 vector 用法
<br />来源:http://www.cppblog.com/tgh621/archive/2008/04/16/47239.html<br /> <br />Vector用于存储对象数组<br />常用方法<br />1.push_back 在数组的最后添加一个数据<br />2.pop_back 去掉数组的最后一个数据<br />3.at 得到编号位置的数据<br />4.begin 得到数组头的指针<br />5.end
2010-10-22 17:15:00 204
转载 操作系统-存储管理
操作系统—存储管理(案例分析)1、计算机系统的二级存储包括( )A、主存储器和辅助存储器B、ROM和RAMC、超高速缓存和内存储器D、CPU寄存器和主存缓冲区答:A。分析:计算机系统的二级存储是指主存储器即内存储器和辅助存储器。B中ROM和RAM是内存储器的两种类型;C中的超高速缓存和D中的CPU寄存器不属于计算机系统存储结构。所以,本题应选择“A、主存储器和辅助存储器”2、以下有关分区存储管理的说法错误的是( )。A、一个分区的存储管理又称单连续存储管理,
2010-10-21 10:58:00 2273
转载 进制转换
<br />一、十进制转二进制 <br />如:55转为二进制 <br />2|55 <br />27――1 个位 <br />13――1 第二位 <br />6――1 第三位 <br />3――0 第四位 <br />1――1 第五位 <br />最后被除数1为第七位,即得110111 <br /> 二、十进制转八进制 <br />如:5621转为八进制 <br />8|5621 <br />702 ―― 5 第一位(个位) <br /> 87 ―― 6 第二位 <br /> 10 ――
2010-10-21 10:55:00 228
转载 虚表指针
<br /><br /> 这张图是一个假设的对象derived在内存中的内部布局图。指针pTest指向对象derived,而对象derived的前4个字节是一个虚表指针,指向虚函数表。<br /> 看着这张图再来分析上面的汇编代码就会清晰很多:<br /> 行1、取得虚表指针值放入eax寄存器中<br /> 行2、取得虚表指针的值放入edx寄存器中<br /> 行3、取得虚表指针指向的地址的值(也就是VFun1)放入eax寄存器中<br /> 行4、调用eax寄存器指向的
2010-10-21 10:53:00 364
转载 C++类对象布局
<br /> 来源:http://ityoudao.com/Web/VC_588_758.html<br />Inside the C++ Object Model<br />类布局<br /><br /> 本节讨论不同的继承方式造成的不同内存布局。<br /><br /> 1、C结构(struct)<br /><br /> 由于C++基于C,所以C++也“基本上”兼容C。特别地,C++规范在“结构”上使用了和C相同的,简单的内存布局原则:成员变量按其被声明的顺序排列,按具体实现所规定的对齐原则在
2010-10-21 10:52:00 290
转载 虚函数表
来源:http://www.cppblog.com/xczhang/archive/2008/01/20/41508.htmlC++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这
2010-10-21 10:50:00 286
转载 memcpy
表头文件: #include 定义函数: void *memcpy(void *dest, const void *src, size_t n)函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束返回值: 返回指向dest的指针附加说明: 指针src和dest所指的内存区域不可重叠void* __cdecl memcpy ( void* dst, c
2010-10-20 11:11:00 230
转载 能力测试 数列
<br />行政能力数列题型——修炼秘法<br />应试者的注意事项<br />1、在考试前调整好应试心态<br />2、在考前做些必要的练习<br />3、掌握做题目的方法<br />4、纠正要“得满分”的想法<br />5、坚持与时俱进,不断研究新题型<br />6、在考场严格按照主考人的要求去做<br />7、注重平时的积累<br />(总之-------了解程序、尽量节约、必要练习、胸有成竹。) <br />一、数量关系的解题原则<br />把握5个原则<br />1、心算胜于笔算<br />2、先
2010-10-20 11:10:00 454
转载 进程通信
进程间通信进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。主要分类 进程间通
2010-10-20 11:08:00 259
转载 malloc/free
<br />malloc用法<br /><br />需要包含头文件:<br />#include 'stdlib.h'<br />函数声明(函数原型):<br />void *malloc(int size);<br />说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。<br />从函数声明上可以看出。malloc 和 new 至少有两个不同:new 返回指定类型
2010-10-20 11:03:00 221
转载 C++ 内存分配方式
<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。<br />2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)—编译器编译时即分配内存。全局变量和静态变量的
2010-10-20 11:02:00 245
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人