1.动态特性 静态特性和动态特性,编译时和运行时 虚函数 (1)虚函数的叫覆盖,虚函数不是实现多态的唯一手段(其他语言也可能采用别的方法). 抽象基类: (1)如果将基类的虚函数声明为纯虚函数,则基类为抽象基类. (2)抽象基类不能被实例化,只能用来被继承用. 动态绑定: (1)每个具有虚函数的类称为多态类,这个虚函数可以是从虚函数继承的也可以是自己新增加的. (2)C++编译器必须至少为每个多态类创建一个虚函数表(vtable),这里面实际上是一个指针数组,存放着这个类的 所有虚函数地址,也包…
1.在C++/C中,全局变量(extern或static)存放在程序的静态数据区中,在程序进入main()之前创建,在main()结束之后销毁,因此在我们的代码中根本没有机会初始化它们,于是语言及其实现就提供了一个默认的全局初始化器0.如果你没有明确地给全局变量提供初值,编译器就会自动地将0转换为所需要的类型来初始化它们.函数内的static局部变量和类的static数据成员都具有static存储类型,因此最终被移到程序的静态数据区中,也会被默认初始化为0,除非你明确地提供了初值.但是自动变量的…
本试题仅用于考查C++/C程序员的基本编程技能.内容限于C++/C常用 语法,不涉及 数据结构. 算法以及深奥的语法.考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力. 笔试时间90分钟.请考生认真答题,切勿轻视. PS:如果想看数据结构和常用算法,可以参考我的Google Code项目ADT-in-C项目. 一.以下为Windows NT下的32位C++程序,请计算sizeof的值(10分) char s1[] = ""; char s2[…
1. 连接规范 1. extern “C” 2. 一部分采用C的连接规范 #ifdef __cplusplus extern "C" { #endif #ifdef __cpluscplus } #endif 2. 变量 1)全局变量(static或者extern)存放在程序的静态数据区中,在程序进入main()之前创建,在main()结束之后销毁. 2)函数内的static局部变量和类的static数据成员都具有static存储类型,因此被转移到程序的静态存储区,也会默认初始化0 3…
内存的分配方式: 1.静态存储区分配:全局变量,static变量等,在程序编译时已经分配了存储内存,在程序运行的整个期间一直存在 2.程序的堆栈上:程序的局部变量,包括程序的形参等,只存在于程序的运行期间 3在堆heap上分配的:动态内存分配,malloc或者new 常见的内存错误: (1)内存分配未成功,却使用它了.记得malloc时要判断返回的是否是NULL,若为NULL则说明动态分配内存失败 (2)内存分配成功了要记得初始化,malloc完了 calloc :(元素个数,元素大小),cal…
• free()和delete只是把指针所指的内容给释放掉,并没有把指针本身删掉.指针被free()或delete以后其地址仍然不变(不等于NULL),只是该地址对应的内存是垃圾——p成了野指针.如果此时不把p设置为NULL,会让人误以为p是个有效指针.在继续使用p之前,使用语句if(p!=NULL)进行防错处理,此时if语句起不到防错作用,因为即便p不是NULL指针,也可能不再指向合法的内存块. •“野指针”不是NULL指针,是指向“非法”内存的指针…
*switch结构的break语句只是一个“jmp”指令,其作用就是跳到switch结构的结尾处 *标准C++/C语言提供3种循环:do/while.while和for,它们都在条件表达式为TRUE(非0值)时执行体内的语句序列.可以使用它们中的任何一种来编写确定循环或不确定循环,但是建议:如果你的循环是确定的,最好使用for结构,否则使用while结构,do/while结构不常用. ==============================数组的存储=====================…