C++期末考试复习重点、易错知识点整理

合集下载

大一c语言期末必备知识点

大一c语言期末必备知识点

大一c语言期末必备知识点C语言作为计算机科学和编程领域中最为基础和重要的编程语言之一,在大一的学习中扮演着重要的角色。

掌握C语言的核心知识点对于顺利通过期末考试至关重要。

本文将为大一同学总结C语言期末考试中的必备知识点,帮助大家提高复习效率和考试成绩。

知识点一:基本语法1. 注释:单行注释以"//"开头,多行注释以"/*"开头,以"*/"结尾。

2. 标识符:变量名、函数名、标签等的命名规则和规范。

3. 数据类型:包括整型、浮点型、字符型和指针型等。

4. 变量和常量:定义变量和常量的方式以及使用的规范。

5. 运算符:包括算术运算符、赋值运算符、逻辑运算符等。

6. 控制语句:包括条件语句(if-else语句)和循环语句(while循环、do-while循环和for循环)等。

7. 函数:函数的定义、函数的调用以及函数的返回值。

1. 数组:一维数组和多维数组的定义、初始化和使用等。

2. 指针:指针的概念、指针的运算、指针和数组的关系等。

3. 字符串:字符串的定义、字符串的操作和字符串的输入输出等。

知识点三:文件操作1. 文件指针:文件指针的定义、文件指针的定位等。

2. 文件读写:打开文件、关闭文件、读取文件内容、写入文件内容等。

知识点四:内存管理1. 动态内存分配:使用malloc、calloc和realloc等函数进行动态内存分配。

2. 内存释放:使用free函数释放动态分配的内存。

1. 结构体:结构体的定义、结构体数组和结构体指针等。

2. 链表:单链表和双链表的定义、插入节点、删除节点和遍历链表等。

知识点六:预处理指令1. 宏定义:使用#define进行宏定义。

2. 条件编译:使用#ifdef、#ifndef、#endif和#elif等来控制代码的编译。

知识点七:函数库1. 标准输入输出库:使用stdio.h中的函数进行输入输出操作。

2. 数学库函数:使用math.h中的函数进行数学计算。

C语言易错点考点(完整版)

C语言易错点考点(完整版)

总体上必须清楚的:1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch)2)用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”;源程序经编译后生成后缀名为“.obj”的目标文件;再把目标文件与各种库函数连接起来,生成“.exe”的可执行文件。

3)main函数,又称主函数,每个C程序有且只有一个main函数;无论main函数在整个程序中的位置如何,程序总是从main函数开始执行、也从main函数结束。

读程序时应从main 函数开始,然后从上往下读(碰到循环做循环,碰到选择做选择)。

4)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.5)bit是位是指为0或者1。

byte是指字节,一个字节=八个位.6)一定要记住二进制如何划成十进制。

概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。

C语言编译的程序称为源程序,它以ASCⅡ数值存放在文本文件中。

2、每个C语言程序中main函数是有且只有一个。

3、在函数定义中不可以再定义函数、即不允许函数嵌套定义。

4、算法可以没有输入,必须要有输出。

5、break可用于循环结构和switch语句。

6、逗号运算符的级别最低。

7、任意合法的表达式一定有一个数值与它对应。

第一章1)C程序中对字母的大小写是敏感的,如A与a是不同的标识符。

注释:是对程序的说明,目的是提高程序的可读性,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,不允许嵌套注释。

3)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了。

关键字不可以作为用户标识符号。

main define scanf printf都不是关键字。

迷惑你的地方If 是可以做为用户标识符。

因为If中的第一个字母大写了,所以不是关键字。

c语言期末必背知识点大一

c语言期末必背知识点大一

c语言期末必背知识点大一在大一期末的C语言考试中,有一些知识点是必须要掌握和背诵的。

这些知识点涵盖了C语言的基本概念、语法规则以及常见的编程技巧。

下面将详细介绍这些知识点,以便同学们在考试中能够取得好成绩。

1. C语言基本概念1.1 编程语言的定义和分类C语言属于过程式编程语言,是一种高级程序设计语言。

1.2 C语言的特点C语言具有可移植性好、执行效率高和语法简洁等特点。

1.3 C语言的编译过程C语言的编译过程包括预处理、编译、汇编和链接四个阶段。

2. C语言的程序结构2.1 C语言程序的基本组成部分C语言程序由函数、语句和表达式组成。

2.2 C语言程序的语法规则C语言程序的语法规则包括标识符的命名规则、语句和表达式的结构等。

2.3 C语言程序的注释方法C语言程序的注释方法包括单行注释和多行注释。

3. C语言的数据类型3.1 基本数据类型C语言的基本数据类型包括整型、浮点型和字符型等。

3.2 派生数据类型C语言的派生数据类型包括数组、结构体和枚举等。

4. C语言的运算符和表达式4.1 算术运算符C语言的算术运算符包括加法、减法、乘法、除法和求余等。

4.2 关系运算符C语言的关系运算符用于比较两个值的大小关系。

4.3 逻辑运算符C语言的逻辑运算符用于处理逻辑表达式的真假值。

4.4 条件运算符C语言的条件运算符用于简化条件判断语句的编写。

5. C语言的控制语句5.1 顺序结构顺序结构是C语言中最基础的控制结构,按照代码编写的顺序依次执行。

5.2 分支结构C语言的分支结构包括if语句、switch语句等,用于根据条件选择执行不同的代码块。

5.3 循环结构C语言的循环结构包括for循环、while循环和do-while循环等,用于重复执行一段代码。

6. C语言的函数和数组6.1 函数定义和调用函数是C语言中的一种独立的代码块,可以在程序中重复使用。

6.2 数组的定义和使用数组是一种用于存储多个相同类型数据的数据结构,可以通过下标访问其中的元素。

c期末考点总结

c期末考点总结

c期末考点总结C语言是一门非常重要的编程语言,是许多计算机科学与软件工程专业的基础必修课。

期末考试是对学生学习成果的一次综合性考核,下面将总结C语言期末考点,帮助大家复习备考。

一、基础知识1. 数据类型:包括基本类型和派生类型,如int、float、char、数组、结构体等。

2. 变量和常量:如何定义变量、常量,变量的作用域和生命周期。

3. 运算符:算术运算符、关系运算符、逻辑运算符、位运算符等,以及它们的优先级和结合性。

4. 控制语句:条件语句(if-else、switch)、循环语句(while、do-while、for)。

5. 输入输出:如何从键盘获取输入,如何将数据输出到屏幕上。

6. 函数:如何定义函数、函数的参数传递和返回值。

7. 数组:如何定义和使用数组,多维数组。

8. 字符串:如何定义和使用字符串,字符串的处理函数。

9. 指针:如何定义和使用指针,指针与数组的关系。

10. 结构体和联合体:如何定义和使用结构体、联合体,结构体和指针的关系。

二、高级知识1. 动态内存分配:如何使用malloc、calloc、realloc函数进行动态内存分配和释放。

2. 文件操作:如何打开、读写、关闭文件,文件的定位指针。

3. 预处理器:如何使用宏定义、条件编译、文件包含等预处理指令。

4. 头文件:如何编写自定义的头文件并使用。

5. 递归:如何使用递归解决问题,递归的实现原理。

6. 指针与函数:如何使用指针作为函数参数,指针函数、指针数组、指针指针等。

7. 指针与字符串:如何使用指针处理字符串,字符串函数的实现。

8. 指针与结构体:如何定义指向结构体的指针,指针访问结构体成员。

9. 指针与动态内存分配:如何动态分配结构体指针,释放动态分配的内存。

10. 文件操作与结构体:如何将结构体数据保存到文件,从文件读取结构体数据。

三、综合应用期末考试通常会出一些综合性的编程题,要求学生综合运用所学知识进行程序设计。

C语言期末考试全部知识点复习资料--重点--常考点-整理.doc

C语言期末考试全部知识点复习资料--重点--常考点-整理.doc

一般转义字符:背诵\0、\n 八进制转义字符: 十六进制转义字符:'\x6cl ,\b 将当前位置移到前一列\n 将当前位置移到下一行开头\t 跳到下一个TAB 位置 \\代表一个反斜线字符'’\,\〃代表一个双引号字符\0空字符(NULL )1. 程序屮基本的控制结构是三种:顺序结构、选择结构(分支结构)、循环结构。

2. 读程序都要从main ()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main 函数。

3. 计算机的数据在电脑中保存是以二进制的形式。

数据存放的位置就是它的地址。

4. bit 是位,是指为0或者1。

byte 是指字节,一个字节二八个位。

5. 编译预处理不是C 语言的一部分,不占运行时间,不要加分号。

(常考!)^define PI 3. 1415926; 这个写法是错误的,一定不能出现分号。

6. 每个C 语言程序中main 函数是有且只有一个。

7. 用C 语言编写的程序称为源程序,扩展名是.co C 程序必须经过编辑、编译、链接、运行四个步骤才可得到运行 结果。

注意.c 和.obj 文件时无法运行的,只有.exe 文件才可以运行。

(常考!)8. C 语言书写格式是自由的,每行可以写多个语句,一条语句也可以写在多行。

9. 一个C 语言程序有且只有一个main 函数,是程序运行的起点。

10. Cfree 、VC/VC++、CodeBlock 等是软件,用来运行写的C 语言程序。

(编译环境)11. 标识符(必考内容):合法的要求是由字母,数字,下划线组成。

并且第一个必须为字母或则是下划线。

第一个为数字就错了12. 标识符分为关键字、预定义标识符、用户标识符。

关键字:不可以作为用户标识符号。

main 、define 、scanf> printf 都不是关键字。

迷惑你的地方是If 、Main 等可以做为用户标识符。

If 、Main 中的第一个字母大写预定义标识符:如define 、scanfs printf> include 。

(完整)期末复习C语言知识点归纳,推荐文档

(完整)期末复习C语言知识点归纳,推荐文档

三、输入输出函数
数据输出 printf
格式: printf(格式符,输出项 1,输出项 2,….)
格式符
功能
%c
输出一个字符
%d
输出十进制整数
%f
输出小数形式浮点数
%e
输出指数形式浮点数
本文%下s 载后请自行输对出一内个字容符串编辑修改删除,
数据宽度说明:
1)在%和格式字符之间插入一个整数来指定输出宽度。
字符的输入和输出 使用 scanf 和 printf 时,格式符均为%c。
例 1 从键盘上输入一个字符保存在 ch 中。 char ch; ch=getchar();
例 2 char c1=’A’, c2; c2=c1+1; putchar(c2);
输出结果是’B’。 例 3 输出一个回车换行符。
&& 的短路运算:
本文下载后请自行对内容编辑修改删除, (表达式 1)&& (表达式 2),若(表达式 1)的值为 0,则表达 式 2 将不被计算,整个&&的结果为 0。
|| 的短路运算: (表达式 1)|| (表达式 2),若(表达式 1)的值为 1,则表达式 2 将不被计算,整个||的结果为 1。
}
C 语言中整型常量的 3 种表示: 8 进制以 0 引导,16 进制以
本文0x 或下0X载引导后,十进请制不自能行以 0对开头内. 容编辑修改删除,
实型(float 或 double 型)常量在程序中只能用十进制数, 不能用其他进制表示。2 种表示形式,普通的和指数形式, 如 3e5 或者 3E5, 三者不可省略任何一部分.
期末复习 C 语言知识点归纳 一、概述
本文下载后请自行对内容编辑修改删除, 1.一个 C 语言源程序可以由一个或多个函数组成,有且只有 1 个 main()函数,可以放在程序中的任何位置.

C语言复习易错点总结

C语言复习易错点总结
if(x>0) y=1; else if(x<0)y=-1;
else y=0; 解 : y=(x>0?1:x<0?-1:0) 与 y=(x>0?1:(x<0?-1:0))等价。 2. 关于赋值表达式,将赋值号"="右侧表 达式的值赋给赋值号左边的变量。赋值表 达式的值为执行赋值后被赋值的变量的 值。形如 a=b ,b 会被转换为符合 a 的类 型,如果不能转换,要么报警告,要么报
} printf(“%d”,s); }t=1 应该放在第三行 此程序看似正确,可是运行结果却不对, 原因也是在 t=1 这个赋值语句,它的位置 应该在外层循环的里面,而不是在外面。 这种错误,对于初学者来讲,很容易犯, 却又发现不了,在程序调试的时候会浪费 很多时间,又会影响编程的自信心。 1.9 数组和整型或者实型变量不能重名 例如: main() { int a[10],a;…} 数组名为 a,其他变量的名字就不能再用 a。 1.10 数组输出时的错误 例如:现在想输出数组 a 中的所有数值。 int a[10]={1,2,3,4,5,6},i; for(i=0;i<10;i++) printf(“%d”,a[10]); 这个程序看似输出数组的十个元素,其实 只输出其中的一个元素。解决此类问题的
if(s==i) printf(“%d”,i); }是不是这样每一次循环 s 都变了?
程序运行的结果预期是 6 和 28,可是 实际上却没有任何结果。原因就是 s=0 这 个语句放错了位置,应该放在外层循环里 面,也就是每判断一个数都应该从 0 开始 累加。 再如:求 1!+2!+……+100! main() { int i,j,s=0,t=1; for(i=1;i<=100;i++) { for(j=1;j<=i;j++) t=t*j;s+=t;

大一c语言期末不挂科知识点

大一c语言期末不挂科知识点

大一c语言期末不挂科知识点在大一的学习生涯中,C语言课程是让许多学生头疼的一门课程。

而期末考试更是让许多同学倍感压力。

然而,只要我们掌握了一些重要的知识点,合理地复习和准备,就能够顺利度过这一关。

接下来,本文将为大家介绍几个大一C语言期末考试中不可忽视的知识点。

一、数据类型与变量1. 基本数据类型:整型、浮点型、字符型等。

2. 变量的定义和声明。

3. 变量的初始化和赋值。

4. 变量的作用域和生存周期。

二、运算符与表达式1. 算术运算符:加、减、乘、除等。

2. 关系运算符:大于、小于、等于等。

3. 逻辑运算符:与、或、非等。

4. 赋值运算符和复合赋值运算符。

5. 位运算符和条件运算符。

三、控制语句1. 分支语句:if语句和switch语句。

2. 循环语句:for循环、while循环和do-while循环。

3. 跳转语句:break语句和continue语句。

四、数组与字符串1. 数组的定义和初始化。

2. 一维数组和多维数组。

3. 字符串的定义和处理。

五、函数与指针1. 函数的声明和定义。

2. 函数的参数传递。

3. 递归函数。

4. 指针的定义和使用。

5. 指针与数组的关系。

六、文件操作1. 文件的打开和关闭。

2. 文件的读写操作。

3. 文件指针的移动。

七、数据结构1. 链表的概念和实现。

2. 栈和队列的概念和实现。

3. 树的概念和实现。

以上只是C语言期末考试中的一些重要知识点,大家在复习过程中还需要结合教材和课堂笔记进行更加详细的学习。

此外,还需要多做一些实践和习题,提高自己的编程能力和解题思路。

综上所述,大一C语言期末考试不挂科的关键在于充分掌握基础的知识点,并能够熟练运用到实际编程中。

希望同学们能够积极备考,把握好这一次机会,为自己打好基础,为以后的学习奠定坚实的基础。

祝愿每一位同学都能取得满意的成绩!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++重点、易错知识点整理第一章1、泛型程序设计是指向程序中数据类型中加入类型参数的一种能力,也称为参数化的类型或参数多态性。

2、c++程序开发通常要经过5个阶段,包括编辑、预处理、编译、连接、运行与调试。

3、编译过程分为词法分析、语法分析、代码生成这3个步骤。

4、使用名字空间std的方法有3种:1、利用using namespace使用名字空间;使用方法如下:2、用域分辨符::为对象分别指定名字空间;例如:3、用using与域分辨符指定名字空间;例如:5、c++中常用操作符:第二章1、c++的数据类型:2、在定义变量的同时赋初值还有另外一种方法,就是在变量后面将初值放在括号中,格式如下:3、常变量定意格式:或※在定义常变量时,一定要赋初值,且在程序中间不能更新其值。

4、常量和非左值表达式是没有内存地址的。

5、在逻辑表达式求值中注意短路求值。

6、运算符优先级的规律:(1)运算符的优先级按单目、双目、三目、赋值依次降低;(2)算术、移位、关系、按位、逻辑运算的优先级依次降低。

7、标准c++提供了新式的强制类型转换运算,格式如下:※static_cast用于一般表达式的类型转换;※reinterpret_cast用于非标准的指针数据类型转换,如将void*转换成char*;※const_cast将const表达式转换成非常量类型,常用于将限制const成员函数的const 定义解除;※dynamic_cast用于进行对象指针的类型转换。

第三章第四章1、内联函数的定义必须出现在对该函数的调用之前。

2、递归函数不能定义为内联函数。

3、说明一个内联函数只是请求而不是命令编译器对它进行扩展。

带有默认形参值的函数:1、若函数具有多个形参,则默认形参值必须自右向左连续的定义,并且在一个默认形参值的右边不能有未指定默认值的参数。

2、在调用一个函数时,若果省去了某个实参,则直到最右端的实参都要省去。

3、默认形参值的说明必须出现在函数调用之前。

若函数原型中已给出了形参的默认值,则在函数定义中不得重复制定,即使所指定的默认值完全相同也不行。

4、在同一个作用域内,一旦定义了默认形参值,就不能在定义它。

5、如果几个函数说明出现在不同的作用域内,则允许对它们提供不同的默认形参值。

6、在函数的原型给出了形参的默认值时,形参名可以省略。

第五章1、相同类型的指针类型才可以想减;两个指针是不可以相加的。

2、一个void类型的地址赋值给非void类型的指针变量,要使用类型强制转换。

3、要初始化多重指针,要从第一层开始,逐步向高层进行。

4、要将字符串q复制给p,除了使用与复制字符数组相同的三种方法外,还可用程序段:5、new的语法形式:6、new创建数组的语法格式:※下表表达式与数组初始化时的常量表达式不同,可以是变量表达式。

7、使用new建立多重数组语法格式:※再用new建立多维数组时,只有下标表达式1可以是任意正整数的表达式,而其它下标表达式必须是值为正整数的常量表达式。

8、delete语法格式:9、delete删除动态数组格式:※[]中不需要说明对象的个数。

※对于一个已分配内存的指针,只能用delete释放一次。

10、指针常量定义格式:11、常量指针定义格式:12、指针常量:指向的对象不能更改,对象的值能改。

13、常量指针:指向的对象能更改,对象的值不能更改。

14、在定义结构体类型时,只要结构体名不同,那么都是不同的类型,即使它们的成员完全相同。

第六章1、根据变量定义的位置,变量分为全局变量与局部变量。

2、根据变量的存储方法,变量分为静态变量和动态变量,具体分为4种:自动型(auto)、寄存器型(register)、外部型(extern)和静态型(static)。

※使用extern只是将一个已存在的变量、函数声明为extern变量函数,而不是定义变量,所以不能赋初值。

※当一个变量被声明为全局静态变量时,不能再被声明为extern变量。

3、c++程序的内存通常被分为4个区:(1)全局数据区(全局变量、静态变量、字符串变量和常变量)(2)代码区(所有的函数和代码)(3)栈区(为运行函数而分配的函数参数、局部变量和返回地址)(4)堆区(动态分配内存)4、宏定义可以嵌套定义、被重复定义,但不能递归定义。

5、定义名字空间的格式如下:第七章1.在类体内不允许对成员函数进行初始化。

2.定义类时,类的数据成员不占内存空间;但是,建立类的对象时,只为每个对象分配用于保存数据成员的内存,不为函数成员分配内存。

3.在定义类时,不能定义该类的变量,只能定义该类类型的指针成员和该类类型的引用成员。

4.浅拷贝和深拷贝的区别:当类的数据成员是指针类型时,深拷贝能为新的对象分配内存空间(分配内存空间一般由new运算符实现;拷贝构造函数就是深拷贝),而浅拷贝不能。

5.对象指针只能访问该类的公有数据成员和函数成员。

6.除非是作为函数参数与函数返回值,对象引用在定义时必须要初始化。

7.非静态函数有一个指向当前对象的this指针,而静态函数没有。

静态函数不属于任何类。

8.在组合类的构造函数中,初始化列表既不能决定是否调用成员对象的构造函数,也不能决定调用构造函数的顺序,成员对象调用顺序由成员对象定义的顺序决定。

9.静态变量和静态对象都只被构造一次。

10.类的静态数据成员必须进行初始化,且其初始化语句既不属于任何类,也不属于包括主函数在内的任何函数。

11.静态变量的初值缺省时为0,;动态变量的缺省初值不确定。

12.静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中的非静态成员。

13.静态数据成员不是对象成员,在引用时不需要用对象名。

(?为什么?)14.不允许常对象调用任何类的成员函数,而且常对象一旦被定义,在其生存期内不允许改变。

15.只有类的常成员函数才能访问该类的常对象;const对象不能访问非常成员函数。

16.常成员函数必须进行初始化,且初始化只能通过构造函数的初始化列表进行。

17.常成员函数的定义格式:18.常成员函数不能更新类的数据成员。

19.保护成员具有双重角色,对派生类的成员函数而言,它是共有成员,但对所在类之外定义的其它函数而言则是私有成员。

20.使用this指针返回对象则不需要调用构造函数,但会调用拷贝构造函数。

21.先建立全局变量,在建立局部变量。

构造函数的调用条件:1.建立对象时;2.建立动态对象(如p=new char)时;※定义对象指针、对象引用时均没有建立对象,所以此时不调用构造函数。

※数组元素为n,定义数组时调用构造函数的次数为n。

※一个对象可以建立多个构造函数,但是只有一个析构函数。

※构造函数没有返回值,也不能用void修饰。

※构造函数被声明定义为公有函数。

拷贝构造函数的调用条件:1.当用类的一个对象去初始化该类的另一个对象时;2.如果函数的形参是类的对象,调用函数时,将对象作为函数实参传递给函数的形参;3.如果函数的返回值是类的对象,函数执行完成,将返回值返回。

4.使用this指针返回对象。

※拷贝构造函数只能有一个参数,并且是对某个对象的引用。

※建立对象时,构造函数和拷贝构造函数有且仅有一个被调用。

※再重新定义拷贝构造函数后,默认拷贝构造函数与默认构造函数就不存在了;但是,再重新定义构造函数后,默认构造函数就不存在了,但默认拷贝构造函数还存在。

析构函数的调用条件:析构函数在程序结束时由系统自动调用。

组合对象的构造函数的调用顺序:在定义一个组合类的对象时,不仅他自身的构造函数将被调用,而且还将调用其成员函数的构造函数,调用先后顺序为:1.成员对象按照在其组合类的声明中出现的次序,依次调用各自的构造函数,而不是按初始化列表中的顺序。

2.组合类对象调用组合类构造函数。

3.调用析构函数,析构函数的调用顺序与构造函数正好相反。

构造、拷贝以及析构函数的调用顺序:对象被析构的顺序与其创建的顺序相反。

第八章1、如果几类定义了带形参表的构造函数时,派生类就应当定义构造函数。

如果积累没有定义构造函数,派生类也可以不定义构造函数。

2、派生类的构造函数和析构函数都不能被继承。

3、多继承时,对同一个基类,不允许直接继承两次。

4、最远派生类(c++将建立对象时所使用的派生类称为最远派生类)的构造函数要调用该公共基类的构造函数,而且只能被调用一次。

5、公共虚基类子对象只初始化一次。

6、c++规定,在初始化列表中同时出现对虚基类和非虚基类构造函数的调用,虚基类的构造函数优于非虚基类的构造函数的执行。

类型兼容的三种情况:1、派生类对象可以赋值给基类对象;2、派生类对象可以初始化积累的引用;3、派生类的地址可以赋值给指向基类的指针。

单继承或多继承时,派生类构造函数的调用顺序:1、调用基类的构造函数;2、调用内嵌成员对象的构造函数调用顺序按照它们在类中定义的顺序;3、派生类自己的构造函数。

单继承时,派生类的析构构造函数的调用顺序:1、调用派生类析构函数;2、然后调用派生类成员对象析构函数;3、最后调用基类析构函数。

第九章1、c++中的运算符除了“○1.○2.* ○3::○4?:○5 siziof”之外,其余全部可以被重载。

2、对于运算符重载为类的友元函数,VC++6.0不允许在声明重载运算符之前使用usingnamespace std,多以分别列出对cout和endl的使用:using std::cout;using std::endl;。

3、重载为类的成员函数语法形式为:4、重载为类的有原函数的定义格式:5、无法声明一个抽象类的对象。

抽象类:1、带有纯虚构函数的类被称为抽象类。

纯虚构函数的定义形式:virtual 函数类型函数名(参数表)=0;2、抽象类不能用作参数类型、函数返回值或强制类型转换;3、可以定义一个抽象类的指针和引用。

通过抽象类的指针和引用,可以指向并访问各派生类成员,这种访问具有多态特征。

成员函数运算符与友元函数运算符的特点:1、一般情况下,单目运算符最好重载为类的成员函数;双目运算符最好重载为类的友元函数。

2、一些双目运算符不能重载为类的友元函数:=、()、[ ]、->。

3、类型转换函数只能定义为一个类的成员函数而不能定义为类的友元函数。

4、如果一个运算符的操作需要对象的状态,选择重载为成员函数较好。

5、若运算符所需的操作数(尤其是第一个操作数)希望有隐式转换,则只能选用友元函数。

6、当运算符函数是一个成员函数时,最左边的操作数(或者只是最左边的操作数)必须是运算符类的一个类对象(后者是对该类对象的引用)。

如果左边的操作数必须是一个不同的对象,或者是一个基本数据类型的对象,该运算符函数必须作为一个友元函数来实现。

7、当需要重在运算符的运算具有可交换性时,选择重载为友元函数。

运算符被重载的规则:1、重载后运算符的优先级与结合性不会改变。

相关文档
最新文档