- 博客(38)
- 资源 (31)
- 收藏
- 关注
转载 虚函数与纯虚函数的区别
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以 不写基类中的函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public: virtual void Eat(){……};
2012-09-30 16:46:31 560
转载 私有构造函数 私有析构函数
很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?这意味着什么? 当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私
2012-09-30 15:29:37 1102
原创 嵌入式中 ARM的几种工作模式 以及异常模式的优先级
一、Arm工作模式:Arm微处理器支持7种工作模式,分别为:1. 用户模式(Usr) 用于正常执行程序2. 快速中断模式(FIQ) 用于高速数据传输3. 外部中断模式(IRQ) 用于通常的中断处理4. 管理模式(SVC) 操作系统使用的保护模式(高权限),复位和软件中断进入5. 数据访问终止模式(abt) 当数据或指令预
2012-09-30 14:57:29 17055 1
转载 程序中的魔鬼数字
在代码中使用魔鬼数字(没有具体含义的数字、字符串等)将会导致代码难以理解,应该将数字定义为名称有意义的常量。 将数字定义为常量的最终目的是为了使代码更容易理解,所以并不是只要将数字定义为常量就不是魔鬼数字了。如果常量的名称没有意义,无法帮助理解代码,同样是一种魔鬼数字。 在个别情况下,将数字定义为常量反而会导致代码更难以理解,此时就不应该强求将数字定义为常量。 案例// 魔
2012-09-30 14:28:58 28867 3
转载 大端模式&小端模式 主机序&网络序
1. 主机序不同的CPU有不同的字节序类型这些字节序是指整数在内存中保存的顺序,这个叫做主机序。最常见的有两种:1. Little endian:将低序字节存储在起始地址。即小端模式2. Big endian:将高序字节存储在起始地址。 即大端模式LE little-endian最符合人的思维的字节序。地址低位存储值的低位,地址高
2012-09-30 14:19:39 5113
转载 p,&p,*p的区别
一、区别 int z=0; int &x = z;//引用,x与z指向同一内存单元 int *y; y = &x;//0x0012ff14 p本身所占内存单元的地址 cout 下面是摘抄别人的一段测试程序。void test(){ int a=8; int *p=&a; p=(int *)malloc(
2012-09-29 10:47:43 19154 3
转载 页式管理
上一节 下一页6.4 页式管理在前面的几种存储管理方法中,进程使用的地址都是物理地址;进一步的存储管理方法通过引入进程的逻辑地址,把进程地址空间与实际存储位置分离,从而增加存储管理的灵活性。6.4.1页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一
2012-09-27 15:38:43 1513
转载 数据模型
数据模型一、所描述的内容1.包括三个部分:数据结构、数据操作、数据约束。 1)数据结构: 数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。 2)数据操作: 数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。 3)数据约束:数据模
2012-09-23 12:43:41 2799
转载 如何计算时间复杂度
一、概念时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数)比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+fa ! =0时,时间复杂度就是O(2^n);a=0,bO(n^3);a,b=0,cO(n^2)依此类推eg:(1) for(i=1;i //循环了n*n次,当然是O(n^2)
2012-09-23 09:14:56 326912 60
原创 笔试题
一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个,即排在偶数的灯泡都被关掉。第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。以此类推,第100轮的时候,还有几盏灯泡亮着?你知道答案吗?别人的算法:1.算法1. 全亮2. 2,4,6,8,10, ...反应 1,2定型 1亮3. 3,6,9,12,15,18...反应 1,2,3定型 1亮4. 4,8
2012-09-23 00:07:23 2592 1
原创 Windows内存管理的方法
一、先说说内存的概念1.物理内存:即插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。2.虚拟内存:虚拟内存就是在硬盘上划分一块页面文件,充当内存。当程序在运行时,有一部分资源还没有用上或者同时打开几个程序却只操作其中一个程序时,系统没必要将程序所有的资源都
2012-09-22 23:53:54 9220 2
转载 判断链表中是否有环
单向链表中有环的话,如果我们对此链表进行遍历,则将无穷尽。因此有必要判断一个单向链表是否有环。假如一个单向链表中存在环,如下图:(一个小矩形代表链表中的一个节点)虚线箭头代表中间有无数节点。 先说算法,然后再来证明算法的正确性。 以下算法可以判断一个单向链表中是否有环(不讨论详细数据结构,只简要说明。设结点的next域为指向下一结点的指针):/* 链表的头指针为h
2012-09-22 20:55:34 1012
转载 面向对象的三个基本特征 和 五种设计原则
一、三个基本特征面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需
2012-09-22 20:08:59 1799
转载 数据库死锁 和 阻塞
数据库死锁原因及解决办法死锁(Deadlock)所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了
2012-09-22 18:57:45 8508
转载 var关键字
var 是 variable(变量,可变物)的简写。在多种计算机编程语言中,var 被用作定义变量的关键字,在一些操系统中也能见到它的身影。JavaScript var a=10; //正确 a=10; //正确 在javascript中,以上两种方法都是定义变量的正确方法。微软的Script56.CHM中是这样解释的: 尽管并不安全,但声明语句中忽略 va
2012-09-20 18:52:57 1763
原创 哈希表(散列表)
一、定义 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作
2012-09-20 17:15:04 1036
原创 数组指针 指针数组 指向数组 的区别
指针: 一个变量在内存中的所占存储单元的地址号就是该变量的指针。一、数组指针与指针数组数组指针是指向这个数组首地址的指针,指向对象是这个数组; 指针数组是存放一类指针的数组,这个数组的每个元素都是一个指针; 例子: int a[10]; int* s; s = a;//这里s就是一个数组指针,它的值就是数组a 的首地址;当然,如果a是一个整数,那s就是一个指向整
2012-09-19 09:05:47 943
转载 检查内在泄漏的方法
在测试工作中,需要接触到各种类型的测试工具。一般来说,有以下一些类型的工具: 测试管理工具:可以帮助完成测试计划、跟踪测试运行结果等的工具。这类工具还包括有助于需求、设计、编码测试及缺陷跟踪的工具; 静态分析工具:分析代码而不执行代码。这种工具检测某些缺陷比用其它方法更有效,开销也更小。这种工具一般可以度量代码的各种指标,如McCabe测定复杂度,Logiscope度量代码和规范的复合度等
2012-09-18 23:50:59 889
转载 C和C++的区别
C与C++的区别 C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的
2012-09-18 23:34:40 787
原创 C++中的多态在C中如何实现
多态的含义约等同于“同一个方法对于不同类型的输入参数均能做出正确的处理过程,并给出人们所期望获得的结果”C++的多态性是C++实现面向对象技术的基础。具体的说,通过一个指向基类的指针调用虚成员函数的时候,运行时系统将能够根据指针所指向的实际对象调用恰当的成员函数实现。一、要用C模拟C++的多态性,可定义同一种函数指针类型和函数指针,运行过程中根据需要给函数指针赋函数地址如下
2012-09-18 19:47:32 4529
转载 数据库范式解析(1NF 2NF 3NF BCNF)
数据库设计范式是关系型数据库的设计准则。其目的在于通过规划设计使得数据库结构合理,尽量减少数据冗余,消除存储异常,方便数据的插入、更新和删除操作。目前常用范式包括1NF(第一范式)、2NF(第二范式)、3NF(第三范式)和BCNF(鲍依斯-科得范式)。 1NF 第一范式如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。也可表述为:数据库表中的字段都是单一属性
2012-09-18 15:34:24 1256
转载 C++开发必看 四种强制类型转换的总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名
2012-09-17 23:18:55 362
转载 堆排序(Heap Sort)算法学习
在程序设计相关领域,堆(Heap)的概念主要涉及到两个方面:一种数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆)。 垃圾收集存储区,是软件系统可以编程的内存区域。 本文所说的堆,指的是前者。堆排序的时间复杂度是O(nlgN),与快速排序达到相同的时间复杂度。但是在实际应用中,我们往往采用快速排序而不是堆排序。这是因为快速排序的一个好的实现,往往比堆排序具有更好的表现
2012-09-12 15:39:43 712
原创 求最大公约数和最小公倍数
一、最小公倍数1、分解质因数法。 我们也可以利用分解质因数的方法,比较简便地求出两个数的最小公倍数。 例如:求60和42的最小公倍数。60=2×2×3×5 42=2×3×760和42的最小公倍数=2×3×2×5×7=420 。这种方法是把60和42分别质因数后,观察相同的质因数只取一个(如2,3),把各自独有的质因数全部乘进去,所得的积就是这两个数的最小公倍数。首先把两个数的质
2012-09-09 20:31:34 1797
转载 TCP协议三次握手过程分析
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent
2012-09-09 20:09:31 504
转载 静态成员变量
#include #include class Test{public: static int i;};int Test::i = 0;int main(){ Test a; std::cout Test::i std::cout a.i return 0;}声明:1、加static标识。定义:
2012-09-09 19:29:26 723
原创 exit和return的区别
1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统;而return 是退出当前函数,返回函数值,把控制权交给调用函数。2. exit是系统调用级别,它表示一个进程的结束;而return 是语言级别的,它表示调用堆栈的返回。3. 在main函数结束时,会隐式地调用exit函数,所以一般程序执行到main()结尾时,则结束主进程。exit将删除进程使用的内存空间
2012-09-09 16:29:06 25573 3
原创 getchar() 和 getch()
getch(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上例如: char ch;或int ch; getch();或ch=getch(); 用getch();会等待你按下任意键,再继续执行下面的语句; 用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。getchar():该
2012-09-09 15:16:58 11468
转载 低耦合和高内聚
原文入下:耦合度一、什么是耦合度软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。 耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越
2012-09-09 13:10:57 6170
转载 Union
一、联合变量的说明 联合变量的说明和结构变量的说明方式相同, 也有三种形式。即先定义,再说明;定义同时说明和直接说明。以perdata类型为例,说明如下: union perdata{ int class; char officae;};union perdata a,b;或者可同时说明为: union perdata{ int
2012-09-09 11:34:34 768
转载 几种编译器的性能比较
现在市面上,主流的C/C++编译器包括M$的CL、gcc、Intel的icl、PGI的pgcc及Codegear的bcc(原来属于Borland公司)。Windows上使用最多的自然是cl,而在更广阔的平台上,gcc则是C/C++编译器的首选。但要提到能力优化,排名就未必与它们的市场占有率一致了。 今天一时兴起,便做了一个各编译器数值性能的比较。测试的代码是一个求积分的程序,来源于inte
2012-09-07 13:36:17 6648 2
原创 Struct 和 Union区别
一、Struct 和 Union有下列区别:1.在存储多个成员信息时,编译器会自动给struct第个成员分配存储空间,struct 可以存储多个成员信息,而Union每个成员会用同一个存储空间,只能存储最后一个成员的信息。2.都是由多个不同的数据类型成员组成,但在任何同一时刻,Union只存放了一个被先选中的成员,而结构体的所有成员都存在。3.对于Union的不同成员赋值,将会对其他成
2012-09-07 12:04:33 50506 3
原创 内联函数和域空间
一、在游戏编程中,真正耗费内存和磁盘的常常是游戏所表现出来的图形、图像和声音。即使使用很多内联成员函数,代码还是相对比较小。尽管使每个成员函数都成为内联函数并不好,但完全不必担心程序的大小。速度才是最重要的因素。 把成员函数的代码放如类定义中。这种方式定义的函数就叫内联成员函数。程序使用内联成员函数的方式可以与类外部定义的成员函数的使用方式完全相同。但是,内联函数和外联函数之间还是有一点区
2012-09-05 13:18:29 780
转载 软件开发人员发展的几个阶段和问题
进入IT的人员都是基本素质不错的人员,但IT产业似乎总是缺少合适的开发人员,为什么会产生这样现象,关键是缺少合适的开发人员,也就是说我们并不缺少开发人员,而是确认高级或者说专业的人员,从而使我们的整体人力优势无法体现出来,在这里说一下我自己在工作期间对软件开发人员的发展过程的一些感受和体会。 首先,大致的说一下自己给IT人员发展过程的分类,以及和工作时间的大致关系(以下观点属于个人观点)
2012-09-05 10:38:55 4761
转载 数据流程图
关键字: 数据流程图 dfd 数据流图(Data Flow Diagram,简称DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经历的变换,其既提供了功能建模机制也提供了信息建模机制。一、数据流程图基本图形符号:(必备知识) 正方形(或立方体):表示数据的源点或终点; 圆角矩形(或圆形):代表变换数据的处理; 开口矩形(或两条平行横线)
2012-09-05 10:29:04 3075
转载 C++运算符的优先级
优先级 操作符 结合性 1 :: 左 2 . -> [] () 左 3 ++ -- ~ ! - + & * () sizeof new delete castname_cast 单目操作符 右 4 .* ->* 左 5 * / % 左 6 + - 左 7 > 左 8 >= 左 9 == != 左 10 & 左 11 ^ 左 12 | 左 13 && 左
2012-09-04 14:29:13 783
原创 存储类型auto,static,extern,register的区别
变量和函数的属性包括数据类型和数据的存储类别,存储类别指数据在内存中存储方式(静态和动态),包含auto,static,register,extern四种。内存中。具体点来说内存分为三块:静态区,堆区,栈区。外部变量和全局变量存放在静态区,局部变量存放在栈区,动态开辟的内存存在堆区。 一、简要性比较extern 外部变量声明,是指这是一个已在别的地方定义过的对象,这
2012-09-04 10:37:11 20666 5
华为 C++ 培训资料
2013-03-28
去除字符串中指定的某字符 如hello去除o,则输出为hell
2012-10-16
C++读一个txt文件,然后计算该文件中有多少行,多少个字符
2012-10-07
将两个升序链表A、B合并到C,并使C成为降序
2012-09-30
C++中new/delete与new[]/delete[]的使用区别
2012-09-18
约瑟夫环的实现
2012-09-03
1.任意输入一个数,用两种方法判断该数是不是回文数,像1,323,45254; 2.任意输入一个字符串,判断它是不是一个回文字符串
2012-08-27
求解三个女儿的年龄
2012-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人