2013中南大学信息院c++复习

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

14
函数
三、函数的调用
函数调用在函数定义之前时,必须在函数调用前对
该函数进行函数声明 main() { float add(float x, float y); float a=3.5, b=6.5, c; c = add(a, b); printf(“sum is %f", c); } float add(float x, float y) { return(x+y); }
2013-6-10 23
类与对象
一、两种程序设计方法的区别

20世纪60年代,为了解决大型软件的开 发中遇到的困难,人们提出了结构化编 程(SP,Structured Programming)方 法。 随着计算机技术的发展,结构化编程方法 的缺点也越来越明显。为此,提出了面向 对象的编程( OOP, Object -Oriented Programming )方法。
2013-6-10 18
wenku.baidu.com
函数
六、函数的重载
C++允许功能相近的函数在相同的作用域内以相同 函数名定义,从而形成重载。重载函数的形参列表
必须不同: 个数不同或类型不同。
int add(int x, int y); float add(float x, float y); int add(int x, int y); int add(int x, int y, int z);
10
函数
知识点
函数的定义 函数的参数和函数的值 函数的调用 内置函数(内联函数) 带缺省形参的函数 函数的重载
2013-6-10
11
函数
一、函数的定义
C++程序是由一个一个的函数组成的
函数的定义:
函数类型 函数名([形参类型说明表]) { 函数体 }
形式参数表中必须指出每个变量的类型: int max(int x, y) int max(int x, int y) { { int z; int z; z=x>y ? x: y; z=x>y ? x: y; return(z); return(z); } }
2013-6-10
float add(float, float);
15
函数
三、函数的调用
函数的嵌套调用:在一个函数的函数体内又调用了
另一个函数 函数的递归调用:函数直接或间接的调用自身
2013-6-10
16
函数
四、内联函数(内置函数)
函数调用会增加执行的开销,C++中提供了内联函 数,可以减少函数调用的开销; 编译时在调用处用函数体进行替换,节省了参数传 递、控制转移等开销; 定义内联函数时,使用关键字inline。

有错? 无 连接 执行 结果正确? 正确 结束
目标程序 file.obj
链接
执行
可执行程序 file.exe
库函数或其 它目标程序
不正确
2013-6-10
源程序 目标程序 可执行程序 内容 程序设计语言 机器语言 机器语言 可执行 不可以 不可以 可以 文件名后缀 .c或.cpp .obj .exe
面向对象的编程方法的主要特点




抽象:抽象的过程是将有关事物的共性归纳、 集中的过程。 封装:对一个对象进行封装,就是把它的一 部分属性和功能对外界屏蔽,即从外界是看 不到的,甚至是不可知的。 继承:特殊类的对象拥有其一般类的全部属 性与服务,称作特殊类对一般类的继承。 多态性:指一个名字(或符号)具有多种含 义。
2013-6-10
13
函数
三、函数的调用
调用形式
函数名(实参表);
说明:
如果是调用无参函数,则没有“实参表”,但括号不能省略; 实参个数与形参个数一般是相同的,但如果有缺省值,则可 以不相同; 实参类型与形参类型最好相同,如果不相同,编译系统会进 行数据类型转换;
2013-6-10
h = hh; m = mm; s = ss;
2013-6-10
}
29
类与对象
三、构造函数与析构函数
构造函数。 构造函数是类的一个特殊的成员函数。 构造函数名与类名相同。 构造函数没有返回类型(与C不兼容)。 构造函数可以有参数,可以重载。 class Watch { private: int h, m, s; public: Watch( ); Watch( int, int, int); };
2013-6-10
12
函数
二、函数的参数和函数的值
形式参数与实际参数
函数参数:用于函数间数据的传递 形式参数:定义函数时使用的参数 实际参数:调用函数时使用的参数 函数的返回值 函数的返回值即函数的值,是一确定的值。 一个函数可以有多个return语句,但不论执 行到哪个return,都将结束函数的调用而返 回主调函数。 return后面的括号可以省略,return后面可 以是表达式。
对象的定义: 类类型名 对象名; Watch MyWatch, *YourWatch; 对象的引用:不能直接引用对象,只能引用 其成员变量或成员函数。 MyWatch.h = 12; MyWatch.SetTime( 0, 0, 0 ); YourWatch->h; (*YourWatch).SetTime(0, 0, 0);
2013-6-10
17
函数
五、带缺省形参的函数
函数在定义时可以预先定义出默认的形参值,调用
时如给出实参,则采用实参值,否则采用预先定义 出的默认形参值。
int add(int x=5, int y=6) { void main(void) return x+y; { } add(10,20); //10+20 add(10); //10+6 add(); //5+6 }
总复习
考试题型、范围及安排 基础知识 函数 数组、指针 类与对象 运算符重载 继承与派生 多态性与虚函数
2013-6-10 1
考试题型、范围及安排
一、考试题型
选择题:(单选,1*15) 填空题:(1*15) 判断题:(1*15) 改错题:(每小题一段代码,指出有错误 的行号,并改正错误,4*2) 补充程序题:(每段程序中缺少几行代码, 补上这些代码,共14分) 简答题:(4*3) 阅读程序写结果:(6*2) 编程题:(9*1)
2013-6-10 28
类与对象
二、类与对象的定义
成员函数的函数体可以在类内部给出,也可以只 在类内部声明函数,而在类外部写函数体,在类
外写函数体时,必须注意格式。
class Watch class Watch { { private: private: int h, m, s; int h, m, s; public: public: void SetTime( int, int, int); void SetTime( int hh, int mm, int ss) }; { h = hh; m = mm; s = ss; void Watch::SetTime( int hh, int mm, int ss) } { };
2013-6-10
8
基础知识
三、程序的三种基本控制结构
循环结构的几种基本语句: while(e) A; do A; while(e); for(e1;e2;e3) A;
2013-6-10
9
基础知识
四、C++程序的开发流程
开始 编辑 编译
源程序 file.c(file.cp p)
编辑 编译
程序代码的录入, 生成源程序*.c或*.cpp 语法分析查错,翻译 生成目标程序*.obj 与其它目标程序或库 链接装配,生成可执行 程序*.exe
算术运算符
关系运算符 &&、|| 赋值运算符 逗号运算符 低
算术运算符:*、/、%(高) +、-(低)
关系运算符:>、<、 >=、 <=(高) ==、!=(低)
2013-6-10
例 j=3; k=++j; //k=4, j=4; j=3; k=j++; //k=3, j=4; a > b && x > y 等价于 (a > b) && (x > y) b+!a+c 等价于 b + (! a) + c 7
2013-6-10
4
基础知识
一、C++的基本元素及基本数据类型
基本符号:
大、小写字母;下划线(不是连接符);
数字;标点符号及运算符 标识符: 用来标识变量、常量、函数及文件的字符序列 只能由字母、数字、下划线组成 第一个字符必须是字母或下划线 有长度限制且区分大小写
2013-6-10 5
基础知识
一、C++的基本元素及基本数据类型
基本数据类型: 整 型:(unsigned) int、short、long
实 型:float、double
字符型:(unsigned) char 布尔型:bool
2013-6-10
6
基础知识
二、常用运算符及其优先级别
+ +、- -、! 高
26
2013-6-10
类与对象
二、类与对象的定义
类定义的基本形式
class 类名 { private: //(可省略) 私有段变量和函数定义; protected: 保护段变量和函数定义; public: 公有段变量和函数定义; }; (分号不可少)
27
2013-6-10
类与对象
二、类与对象的定义
2


2013-6-10
考试题型、范围及安排
二、考试范围
C语言与C++的内容都会考到 以面向对象编程的C++为主
三、考试安排
时间:6月22日,17周周六,上午三四节 地点:主校区科教南楼
2013-6-10
3
基础知识
知识点
C++的基本元素及基本数据类型 常用运算符及其优先级别 程序的三种基本控制结构 C++程序的开发流程

2013-6-10
24
类与对象
一、两种程序设计方法的区别

结构化编程将数据和对数据的操作分离, 程序由一个个的函数组成。 面向对象的编程将数据和操作封装在一 起,程序是由一个个对象组成的,对象 之间通过接口进行通信,它能够较好地 支持程序代码的复用。

2013-6-10
25
类与对象
一、两种程序设计方法的区别
基础知识
三、程序的三种基本控制结构
顺序结构、选择结构、循环结构 选择结构的几种基本语句 if(e) A; if(e) A; else B; if(e1) A1; else if(e2) A2; else if(e3) A3; … else An; switch(e) { case e1: A1; break; case e2: A2; break; … default: An; }
2013-6-10
21
数组、指针
指针变量是存放其它变量地址的变量。 int *p1, *p2; 指针有关的运算符:
取地址运算符&: &x——得到变量x的地址(首地址) 指针运算符*: *p——指针变量p所指向的内存单元
2013-6-10
22
类与对象
知识点
两种程序设计方法的区别 类与对象的定义 构造函数与析构函数 this关键字 静态成员 友元 类模板
int add(int x, int y); int add(int a, int b);
形参类型不同
形参个数不同
int add(int x,int y); void add(int x,int y); 编译器不以返回值来区分
19
编译器不以形参名来区分
2013-6-10
数组、指针
数组是一种构造类型数据,它 是按序排列的具有相同类型变 量的集合。 数组名后只能用方括号 括起来的正常量表达式 (正常数或正符号常量) int a[10]; float b[12]; char c[20];
#define M 10 int i=15; int data[M]; float f[i]; char c(20);
2013-6-10
20
数组、指针
数组元素的下标从0开始,且不能越界(虽然下 标越界不是语法错误)。 一维数组如果不初始化,则自动赋随机值。 可以只组前面部分元素赋初值,系统会自动给 其它元素赋0,但所赋初值个数不能大于数组长 度。 int a[4] = {1, 2}; ↔ int a[4] = {1, 2, 0, 0}; int a[4] = {1, 2, 3, 4, 5};
相关文档
最新文档