摘要: 一、引入原因: 1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。 2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。 为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtu... 阅读全文
posted @ 2015-07-10 17:29 Rosanne 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 全局变量与全局静态变量的区别: (a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。 (b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。 (c)具有外部链接的静态;可以在... 阅读全文
posted @ 2015-07-10 17:26 Rosanne 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 多态的概念 通俗的说,是指用同一个名字定义不同的函数,这些函数执行不同的操作,即同样的接口实现不同的动作。 多态性分为编译时的多态性和运行时的多态性。 静态联编是指联编工作出现在程序的编译连接阶段。静态联编在程序编译阶段就知道调用函数的全部信息。其优点是速度快、效率高,缺点是缺乏灵活性。静态联... 阅读全文
posted @ 2015-07-10 17:24 Rosanne 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?我们知道,当我们在程序中声明一个对象时,编译器调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的,由于在class外部不允许访问私... 阅读全文
posted @ 2015-07-10 17:22 Rosanne 阅读(679) 评论(0) 推荐(0) 编辑
摘要: typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。#define是预处理指令。1. 首先,二者执行时间不同关键字typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。Define则是宏定义,发生在预处... 阅读全文
posted @ 2015-07-10 17:17 Rosanne 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 一.内存分配 在C++中,内存分成5个区,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 堆,就是那些由new分... 阅读全文
posted @ 2015-07-10 17:09 Rosanne 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 问题描述:对于单参数的构造函数C++允许隐含的类型转换,容易破坏代码可读性,并导致难以发现的错误,通过关键字explicit修饰构造函数可以禁止单参数构造函数创建隐式临时变量。 阅读全文
posted @ 2015-07-10 17:05 Rosanne 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 三种数据类型的初始化1.static int a 的初始化const int a 的初始化static const int a的初始化三种初始化方式在类外初始化在构造函数中通过初始化列表初始化在声明的同时初始化一.static数据成员 静态成员:静态类中的成员加入static修饰符,即是静态成员.可... 阅读全文
posted @ 2015-07-10 16:59 Rosanne 阅读(801) 评论(0) 推荐(1) 编辑
摘要: 一.一般形式返回类型 operator 操作符 (参数列表)二.成员函数or友元函数?大部分运算符重载函数既可以是成员函数,也可以使友元函数。使用友元函数的形式如下: friend 返回类型 operator 操作符 (参数列表) eg: 成员函数:Int operator + (... 阅读全文
posted @ 2015-07-10 16:47 Rosanne 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 几点原则:1.short至少为16位2.int至少与short一样长3.long至少为32位,且至少与int一样长64位系统中各数据类型所占的字节数:char:1字节bool:1字节short:2字节int:4字节long:4字节float:4字节double:8字节float和double不能用u... 阅读全文
posted @ 2015-07-10 16:42 Rosanne 阅读(162) 评论(0) 推荐(0) 编辑
摘要: C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU... 阅读全文
posted @ 2015-07-10 16:36 Rosanne 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 一、继承关系继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。二、实现关系实现指的是一个class类实现interface接口(可以是多个)的功... 阅读全文
posted @ 2015-07-10 16:26 Rosanne 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 程序经过编译后将变量名转换成变量的地址,对变量的存取都是通过地址进行的。一.指针与指针变量指针:一个变量的地址。指针就是地址指针变量:专门存放变量地址的变量二.指针的初始化1.可以用任意合法的指针值进行初始化2.如果定义指针变量时没有初始化,则系统将根据指针变量的类型选择是否自动初始化指针变量:全局... 阅读全文
posted @ 2015-07-10 16:17 Rosanne 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 一.多继承机制存在哪些问题,怎么解决这些问题?——歧义性:相同名称的成员在内存中同时拥有多个拷贝,当通过派生类对象使用这些成员时,就会产生歧义性。作用域操作符虽然能解决歧义性问题,但并没有解决多个拷贝的问题。类D 的内存布局使用虚拟机制注意事项:1.若在虚基类中定义了带参数的构造函数,而没有定义默认... 阅读全文
posted @ 2015-07-10 15:51 Rosanne 阅读(975) 评论(0) 推荐(0) 编辑