自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 笔试题总结0003

1.哪些运算符不能重载?重载操作符的限制:  8.1 并不是所有的操作符都能被重载。除了. ,.* ,:: ,? : ,sizeof,typeid这几个运算符不能被重载,其他运算符都能被重载  8.2 重载不能改变该运算符用于内置类型时的函义,程序员不能改变运算符+用于两个int型时的含义。  8.3 运算符函数的参数至少有一个必须是类的对象或者类的对象的引

2012-10-18 09:08:51 514

转载 Placement New

首先我们区分下几个容易混淆的关键词:new、operator new、placement newnew和delete操作符我们应该都用过,它们是对堆中的内存进行申请和释放,而这两个都是不能被重载的。要实现不同的内存分配行为,需要重载operator new,而不是new和delete。 看如下代码:class MyClass {…};MyClass * p=

2012-05-09 11:14:37 482

转载 call by value ;call by address/reference ;call by name;call by pointer

假设有一段code内容大致如下: ---------------------------------- MAIN() BEGIN   A[1:4]={1,2,3,4};   X = 1;   Y = 2;   CALL SUB(X, Y, A[X]); END SUB(A, B, C) BEGIN   A = B;   C = 12; END

2012-05-09 09:48:30 915

转载 链表和数组的区别

链表和数组一样是一种数据结构。数组是将元素在内存中连续存放,由于每个元素占用内存相同,所以可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存

2012-05-08 22:33:48 1175

转载 实体物品测试

铅笔:1.功能测试:能不能称作一只笔 是否能书写..2.性能测试:(实用性、易用性)写起来是不是很流畅,铅笔的粗细人手握着的舒适               度,铅笔表层的光滑度和手之间的摩擦硬度。3.压力测试: 用多久能用完.使劲写,多大力气多折断。可对比其他上市铅笔 有什么优点。3.用户体验:找适当人群组织群众使用 并跟踪记录使用后反应出来的效果。4.破坏测试: 多

2012-05-07 17:16:21 741

转载 线程和进程的区别

1.一个程序至少有一个进程,一个进程至少有一个线程. 2.线程的划分尺度小于进程,使得多线程程序的并发性高。3.进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。4.线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线

2012-05-07 11:27:01 474

转载 C程序内存分配

(1)代码区(text segment)用来存放程序的二进制代码。代码区指令根据程序设计流程依次执行,对于顺序指令,则只会执行一次(每个进程),如果反复,则需要使用跳转指令,如果进行递归,则需要借助栈来实现。代码区的指令中包括操作码和要操作的对象(或对象地址引用)。如果是立即数(即具体的数值,如5),将直接包含在代码中;如果是局部数据,将在栈区分配空间,然后引用该数据地址;如果是B

2012-05-03 09:41:44 533

转载 虚拟内存的作用

虚拟内存是计算机系统内存管理的一种技术。别称虚拟存储器(Virtual Memory)。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。电脑中所运行的程序均需经由内存执行,若执行的程序很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,

2012-05-02 21:37:28 953

转载 extern "C"

extern "C"包含双重含义,其一:被它修饰的目标是“extern”的;其二:被它修饰的目标是“C”的。1)被extern “C”限定的函数或变量是extern类型的;    extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其他模块中使用。    注意:extern int a;

2012-05-02 21:20:16 490

原创 测试基础理论小结

刚开始接触测试,记录一下各种基本的理论。1.软件测试方法:静态测试方法和动态测试方法。2.白盒测试方法:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异、控制流。3.黑盒测试方法:基于用户需求的测试、功能图分析方法、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法和功能图

2012-05-02 20:03:48 538

转载 海量数据处理——数据库索引及优化

数据库优化:一.索引二.缓存三.切表四.日志分析五.二级服务器架构索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。创建索引的优点:创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可

2012-05-02 18:45:24 687

原创 存储器管理——连续分配方式

连续分配方式:为一个用户程序分配一个连续的内存空间。一.单一连续分配二.固定分区分配     1.分区大小相等     2.分区大小不等三.动态分区分配     1.首次适应算法(FF/first fit)      2.循环首次适应算法(next fit)     3.最佳适应算法(best fit)        从最小的分区开始分配     4.最坏适

2012-04-23 17:58:08 756

原创 调度算法小结

处理机管理的工作是对CPU进行合理的分配使用,以提高处理机利用率,并使各用户公平地得到处理机资源。CPU可分配的资源是在处理器上的执行时间,分配的途径是调度。处理机调度的层次:高级调度、低级调度、中级调度调度算法就是一种资源分配算法。有的算法适用于作业调度,有的算法适用于进程调度,有的两者都适应。1) 先来先服务(FCFS/first com

2012-04-23 14:20:21 3585

转载 inote小结

转载地址:http://www.ruanyifeng.com/blog/2011/12/inode.html一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个

2012-04-22 19:57:13 2324

原创 死锁

一.死锁发生的条件死锁的发生必须具备下列4个必要条件:–互斥:任一时刻只允许一个进程使用资源–请求和保持:进程在请求其余资源时,不主动释放已经占用的资源–非剥夺:进程已经占用的资源,不会被强制剥夺–环路等待:环路中的每一条边是进程在请求另一进程已经占有的资源。二.处理死锁的方法1.预防死锁:破坏四个必要条件中的一个或几个条件;  易于

2012-04-17 21:37:19 628

转载 僵尸进程和孤儿进程

僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有

2012-04-17 11:24:17 1712

原创 管道通信

例:用C语言编写一个程序,建立一个pipe,同时父进程生成一个子进程,子进程向pipe 中写入一字符串,父进程从pipe中读取该字符串。#include main( ){ int x, fd[2]; char buf[30], s[30]; pipe(fd); x = fork( ) ; if( x == 0 ) { sprintf( buf,

2012-04-17 10:45:29 1428

转载 管程

管程的基本思想是,将共享变量和对它们的操作集中在一个模块中,操作系统或并发程序就由这样的模块构成。这样模块之间联系清晰,便于维护和修改,易于保证正确性。    从语言的角度看,管程主要有以下特性:  (1)模块化。管程是一个基本程序单位,可以单独编译;   (2)抽象数据类型。管程是中不仅有数据,而且有对数据的操作;   (3)信息掩蔽。管程外可以调用管程内部定义的一些函数,但函数

2012-04-17 09:47:57 473

转载 TCP/IP

TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。五层模型:从下到上:物理层、数据链路层、网络层、传输层、应用层。开放式系统互连(OSI)七层:从下到上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP的三次握手在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次

2012-04-14 22:40:14 453

转载 计算机网络

1. 描述实时系统的基本特性 答案:在特定时间内完成特定的任务,实时性与可靠性。2. Internet采用哪种网络协议?该协议的主要层次结构?答案:TCP/IP协议。应用层、传输层、网络层、数据链路层和物理层。 3. Internet物理地址和IP地址转换采用什么协议?答案:地址解析协议ARP address resolution protocol 4. IP地址的编码分为

2012-04-12 20:06:36 691 1

转载 类型转换函数

operator const char *() const:类型转换函数如果是重载*的话,那应该写成:const char operator * () const,而且即使是这样写那也不正确的,因为运算符重载中有几个运算符的返回值有约定,如operator * 在重载时通常返回值是classType&或者const classType& 。operator const char*()

2012-04-12 15:58:12 422

原创 运算符重载

实现函数运算符的实质:编写一个函数,该函数以“operator运算符号”为函数名,其定义了重载的运算符将要执行的操作。(给自己的类进行运算)运算符重载有两种形式:重载为类的成员函数  重载为类的友元函数(1)重载为类的成员函数:         双目运算符:一个参数(左操作数是访问该运算符对象本身的数据,由this指针给出,右操作数由参数给出)

2012-04-12 13:59:01 667

原创 推导二叉树遍历

一.已知后续遍历和中序遍历,推导前序遍历结果:     中序遍历:ABCDEFG      后序遍历:BDCAFGE      推导方法:(1)在后序遍历中,根节点在最后边,可以知道E为根节点;                        (2)在中序遍历中,找到根节点E,在E左边的都为E的左子树(ABCD),右边的都为右子树(FG);

2012-04-12 08:45:29 823

原创 面试题总结0002

一.判断题1.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。(对)2.类的静态数据成员需要在定义每个类的对象时进行初始化。(错)  解析:类的静态数据成员需要在类体外进行初始化。静态数据成员对于所有类对象来说只有一份,因此不能在类体内随着每个类对象的初始化而初始化,而是需要在全局数据空间中进行单独的初始化,并且只能存在一份实例。

2012-04-11 21:02:17 1655

转载 笔试题总结0001

1)输出当前源文件的文件名以及源文件的当前行号?解答:ANSI C标准预定义宏:1)__LINE__:在源文件中插入当前源代码行号;2)__FILE__:在源文件中插入当前源文件名;3)__DATE__:在源文件中插入当前的编译日期;4)__TIME__:在源文件中插入当前编译时间;5)__STDC__:当要求程序严格遵循ANSI C标准时该标识符被赋值为1,表明是标准

2012-04-11 10:17:23 415

转载 笔试题总结0000

1.选一个正确的(A)(此题答案不知道是不是正确的,希望各位指正)A静态链接库不能有同名全局函数B动态链接库不能有同名全局函数C两个静态链接库的同名全局函数不能同时加载D两个动态链接库的同名全局函数不能同时加载分析:若两个有A.lib,B.lib,两个静态lib文件,并且全部链接,且A有全局函数fun1,fun2,B有fun2,fun3,如果在代码中调用了属于A的函数也

2012-04-11 10:05:05 554

原创 对虚函数的理解

情况一:B继承A,有同名函数,基类中的函数不为虚函数#include using namespace std;class A{public: A() { a = 1;b = 2; } ~A() {} void fun() { printf("%d %d\n",a,b); cout<<"A fun;"<<endl; } int a; int b;}

2012-04-10 14:04:25 463

转载 继承-虚函数-作用域

来源:http://blog.csdn.net/gzshun在继承过程中,从基类派生出派生类,可能出现重名的成员,包括数据成员或成员函数,这些属于作用域方面的内容。一、基类的引用或指针访问派生类基类的引用或指针只能访问派生类中属于基类的部分成员,不能访问派生类的部分,否则就会编译出错。[cpp] view plaincopy

2012-04-10 09:53:09 882

转载 STL中的random_shuffle()方法的使用

STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的),函数原型如下:template void random_shuffle( RandomAccessIterator _First, //指向序列首元素的迭代器 RandomAccessIterator _Last //指向序列最后一个元素的下一个位置的迭代器 );例

2012-04-09 17:29:03 35385 3

转载 STL中的nth_element()方法的使用

STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的,下面是这个方法的具体使用方法.#pragma warning(disable: 478

2012-04-09 16:40:27 3460

转载 函数返回值的几种情况

在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。 1.     如果返回一个基本类型的变量,比如:int a;a = 5;return a; 那么就会a的一个拷贝,即5返回,然后a就被销毁了。尽管a被销毁了,但它的副本5还是成功地返回了,所以这样做没有问题。

2012-04-08 21:00:19 5561

转载 引用作为函数返回值

函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。  例如,下面的程序是有关引用返回的4种形式:    //*********************    //**   ch9_6.cpp  **    //*********************    #include     float temp;    float fn1(flo

2012-04-08 11:47:45 10366

转载 类(空类/虚基类等)占内存的空间

一、真空类class CNull{};长度:1内存结构:??评注:长度其实为0,这个字节作为内容没有意义,可能每次都不一样。 二、空类class CNull2{public:    CNull2(){printf("Construct/n");}    ~CNul

2012-04-06 21:45:25 2281

转载 递归函数调用递归函数

题目如下:问下列代码的打印结果为0吗?[cpp] view plaincopy#include   #include   using namespace std;    struct CLS  {      int m_i;      CLS( int i ) : m_i(i){}      CLS()

2012-04-06 20:39:27 789

转载 我是递归盲~~~

奈何~~我对递归完全没办法~各种不理解~~我决定把各种简单的复杂的递归题都放在这~~我就看就想就调试~我不信了,我还能被递归吓死!!!一.函数pow(x,y)实现运算x^y,即x的y次方,这里x和y都为整数。算法的基本思想是,减少乘法次数,重复利用结算结果,例如:x^4,如果逐个相乘的话,需要四次乘法。如果我们这样分解(x^2)*(x^2)就只需要2两次乘法,因为x^2的结果我们可

2012-04-06 20:15:24 1372

转载 虚函数与虚指针

class A{public: virtual void method1(){ }private: int a; int b;};class B: public A{public: virtual void method2(){ }private: int c;};int main(){ A* a = new A(); B* b = new

2012-04-06 16:42:57 970

转载 Windows线程 进程

简述Windows线程同步的几个方法1)关键代码段,InitializeCriticalSection(),EnterCriticalSection(),LeaveCriticalSection(),不能跨越进程,速度很快,又称为用户方式同步。2)除了用户方式同步就是内核对象同步了。WaitForSingleObject(),WaitForMultiObject()……       注

2012-04-06 16:13:13 767

转载 析构函数设置成虚函数的原因

#include #include using namespace std;class A{      public :       A()      {             cout             ptr = new int[10];      }      ~A()      {      delete ptr;

2012-04-06 15:33:54 2537

转载 可重入函数

可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误。不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。可重入函数是指一个可以被多个任务调用的过程,任务在调用时不必担

2012-04-05 19:00:23 447

转载 malloc realloc calloc用法小结

三个函数的申明分别是:void* realloc(void* ptr, unsigned newsize);void* malloc(unsigned size);void* calloc(size_t nelem, size_t elsize);它们的返回值都是请求系统分配的地址,如果请求失败就返回NULLmalloc用于申请一段新的地址,参数size为需

2012-04-04 11:02:51 1217 2

空空如也

空空如也

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

TA关注的人

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