面向对象程序设计的基本概念
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
程序执行过程中内存的情况
代码区 全局数据区 堆区 栈区 存放程序的代码,即程序中的各个函数块
存放程序的全局数据和静态数据
存放程序的动态数据 存放程序的局部数据,即各个函数中的数据
全局变量:变量在整个程序中均可用
局部变量:只能在程序的某个函数或某部分可用
11
数组的定义
数组是由若干同类型的有序数据组成的集合 一维数组的定义 类型说明符 数组名[常量表达式]; 1、数组名定名规则和变量名相同
定义:把相关的语句组织在一起,注明相应的名称, 完成一定的功能,利用这种方法将程序分块,则语 句的相关组合称为函数(例程、过程)。 函数的使用:即为函数的调用,包括指定被调用函 数的名字和调用函数所需的参数。 函数的分类:标准库函数和用户自定义函数
无参函数和有参函数
函数不能嵌套定义,所有函数均是平行关系 从main函数开始执行,而不管其在程序中的位置
main() {int a,b,c; cin>>a>>b; c=max(a,b); cout<<“max is”<<c<<endl;}
int max(int x,int y) { int z; z=x>y?x:y; return(z)}
8
函数的返回值
通过函数调用使主调函数能得到一个确定的值。
函数的返回值通过函数中的return语句获得, return将带回一个确定的值,并且仅仅是一个值。 一个函数可以有一个以上的return语句。 在定义函数时指定函数值得类型,若没有定义,一 律按整型处理。 如果函数值类型和return语句中的表达式的值不一 致,则以函数类型为准。 为了明确表示“不带回值”,可以用”void”定义。
编译预处理:以符号“#”开头的行 程序主体:全部由函数文件组成
3
程序主体
一个C/C++程序主体由若干个函数组成,至少包 含一个main函数。 一个C/C++程序总是从main函数开始执行,无论 main函数在程序的什么位置。 C/C++书写格式自由,一行可以写几个语句,但 每一语句和数据定义最后必须有一个分号;,
16
指针概念
指针:表示基本数据类型地址的标识符 每一种基本数据类型都有相对应的指针类型
定义:数据类型 *指针变量名;
例:int *ip;(含义:ip中存放一个地址,这个地 址所对应的内存空间存放一个整数。)
说明 1、每个指针都有一个类型(除了void *) 2、指针同样可以声明成全局、静态全局、 静态局部和局部
C/C++中的任何变量都必须先定义,后使用。
4
函数
C/C++用函数组织程序。
C/C++程序是函数驱动的。
一个函数必须在函数声明后才能使用(调用), 并且由函数原型构成。 C/C++的函数分为库函数和用户自定义函数。 函数的组成:说明部分和函数体(变量定义和 执行部分)。 函数不能嵌套定义。
5
函数概述
14
二维数组
二维数组的定义
两个下标标识数组中的一个元素
int a[10] a[0]
一维数组和二维数组的关系
int a[2][5] a[0][0]
…… a[0][1] …..
a[1]
对于a[n][m] 的数组
其中任意a[i][j]的存放位置应为a[0][0]+i*m+j
15
注意事项
将每个数组的长度定义为常量变量而不是 常量,能使程序的伸缩性更强,使程序更 清晰。 引用超出数组边界的元素是个执行时逻辑 错误,而不是语法错误。 如果cin>>不提供足够大的数组,则键盘输 入时可能造成数据丢失和其他严重的运行 时错误。
17
指针概念
3、指针定义后都分配了空间,但在没有给他 赋值之前,没有任何内容。 4、*可以靠左、可靠右,也可两边都不靠 (建议靠近指针变量)。
5、在定义中,一个*只能表示一个指针。 例:int *iptr1,iptr2; int *iptr1,*iptr2;
18
给指针赋值
如何获取变量的地址?
6
函数定义的一般形式
函数的类型标识符 函数名(参数类型、参数名)
(返回值类型)
{ 函数说明部分 函数定义部分 (语句) }
例子: int max(int x,int y) { int z; z=x>y?x:y; return(z) }
7
形式参数和实际参数
形式参数:在定义函数时函数名后面括弧中的 变量名(简称形参)。 实际参数:在调用函数时,函数名后面括弧中 的表达式(简称实参)。
C语言复习
C语言程序的基本结构
函数
数组
指针
结构
1
程序开发过程
问题分析,提出算法
编辑源程序(*.cpp)
保存
编译(compile,Alt+F9)(*.obj)
链接(link)(make,F9)(*.exe)
运行(Run,Ctrl+F9)
2
程序实例和程序说明
程序结构:
注释、编译预处理和程序主体 注释:序言注释和注解性注释 C: /* C++: // */
2、数组名后用方括弧括起来常量表达式,不能用 圆括弧
3、常量表达式表示元素的个数,即数组长度。可 以是常量和符号常量,C语言中但不能包含变量。 例: Char buffer[5];
12
数组的定义
4、数组下标是从0开始,在上例中五个字符各自存放在 buffer[0]、 buffer[1]、 buffer[2]、 buffer[3]、 buffer[4] 中。由此说明下标表明了数组元素到数组开始的偏移量 (差值)。
5、数组的大小在编译的阶段确定,在C语言中只允许固 定大小的空间。而在C++允许利用堆空间动态的建立数组 (稍后详解)。 6、数组必须先定义,后应用,其作用域和单个变量相同。 局部数组没初始化的内容不定,而全局数组和静态局部数 组则初始化为全0。
Biblioteka Baidu13
一维数组的引用
数组中的元素全部要通过下标来访问。 在数组定义后,给数组赋初值时,必须一 个个元素逐个访问。 字符数组,也称为字符串。在数组中,以 ′\0′的方式作为结束符。
9
函数的调用
函数调用的一般形式:
函数名(实参表列);
调用方式
函数语句:不要求带回值,只完成一定的操作 函数表达式:c=2*max(a,b) 函数参数:c= max(max(a,b),7)
几点说明 被调用的函数必须是已经存在的函数 使用库函数,用#include包含相关头文件 用户自定义函数必须有函数原型
程序执行过程中内存的情况
代码区 全局数据区 堆区 栈区 存放程序的代码,即程序中的各个函数块
存放程序的全局数据和静态数据
存放程序的动态数据 存放程序的局部数据,即各个函数中的数据
全局变量:变量在整个程序中均可用
局部变量:只能在程序的某个函数或某部分可用
11
数组的定义
数组是由若干同类型的有序数据组成的集合 一维数组的定义 类型说明符 数组名[常量表达式]; 1、数组名定名规则和变量名相同
定义:把相关的语句组织在一起,注明相应的名称, 完成一定的功能,利用这种方法将程序分块,则语 句的相关组合称为函数(例程、过程)。 函数的使用:即为函数的调用,包括指定被调用函 数的名字和调用函数所需的参数。 函数的分类:标准库函数和用户自定义函数
无参函数和有参函数
函数不能嵌套定义,所有函数均是平行关系 从main函数开始执行,而不管其在程序中的位置
main() {int a,b,c; cin>>a>>b; c=max(a,b); cout<<“max is”<<c<<endl;}
int max(int x,int y) { int z; z=x>y?x:y; return(z)}
8
函数的返回值
通过函数调用使主调函数能得到一个确定的值。
函数的返回值通过函数中的return语句获得, return将带回一个确定的值,并且仅仅是一个值。 一个函数可以有一个以上的return语句。 在定义函数时指定函数值得类型,若没有定义,一 律按整型处理。 如果函数值类型和return语句中的表达式的值不一 致,则以函数类型为准。 为了明确表示“不带回值”,可以用”void”定义。
编译预处理:以符号“#”开头的行 程序主体:全部由函数文件组成
3
程序主体
一个C/C++程序主体由若干个函数组成,至少包 含一个main函数。 一个C/C++程序总是从main函数开始执行,无论 main函数在程序的什么位置。 C/C++书写格式自由,一行可以写几个语句,但 每一语句和数据定义最后必须有一个分号;,
16
指针概念
指针:表示基本数据类型地址的标识符 每一种基本数据类型都有相对应的指针类型
定义:数据类型 *指针变量名;
例:int *ip;(含义:ip中存放一个地址,这个地 址所对应的内存空间存放一个整数。)
说明 1、每个指针都有一个类型(除了void *) 2、指针同样可以声明成全局、静态全局、 静态局部和局部
C/C++中的任何变量都必须先定义,后使用。
4
函数
C/C++用函数组织程序。
C/C++程序是函数驱动的。
一个函数必须在函数声明后才能使用(调用), 并且由函数原型构成。 C/C++的函数分为库函数和用户自定义函数。 函数的组成:说明部分和函数体(变量定义和 执行部分)。 函数不能嵌套定义。
5
函数概述
14
二维数组
二维数组的定义
两个下标标识数组中的一个元素
int a[10] a[0]
一维数组和二维数组的关系
int a[2][5] a[0][0]
…… a[0][1] …..
a[1]
对于a[n][m] 的数组
其中任意a[i][j]的存放位置应为a[0][0]+i*m+j
15
注意事项
将每个数组的长度定义为常量变量而不是 常量,能使程序的伸缩性更强,使程序更 清晰。 引用超出数组边界的元素是个执行时逻辑 错误,而不是语法错误。 如果cin>>不提供足够大的数组,则键盘输 入时可能造成数据丢失和其他严重的运行 时错误。
17
指针概念
3、指针定义后都分配了空间,但在没有给他 赋值之前,没有任何内容。 4、*可以靠左、可靠右,也可两边都不靠 (建议靠近指针变量)。
5、在定义中,一个*只能表示一个指针。 例:int *iptr1,iptr2; int *iptr1,*iptr2;
18
给指针赋值
如何获取变量的地址?
6
函数定义的一般形式
函数的类型标识符 函数名(参数类型、参数名)
(返回值类型)
{ 函数说明部分 函数定义部分 (语句) }
例子: int max(int x,int y) { int z; z=x>y?x:y; return(z) }
7
形式参数和实际参数
形式参数:在定义函数时函数名后面括弧中的 变量名(简称形参)。 实际参数:在调用函数时,函数名后面括弧中 的表达式(简称实参)。
C语言复习
C语言程序的基本结构
函数
数组
指针
结构
1
程序开发过程
问题分析,提出算法
编辑源程序(*.cpp)
保存
编译(compile,Alt+F9)(*.obj)
链接(link)(make,F9)(*.exe)
运行(Run,Ctrl+F9)
2
程序实例和程序说明
程序结构:
注释、编译预处理和程序主体 注释:序言注释和注解性注释 C: /* C++: // */
2、数组名后用方括弧括起来常量表达式,不能用 圆括弧
3、常量表达式表示元素的个数,即数组长度。可 以是常量和符号常量,C语言中但不能包含变量。 例: Char buffer[5];
12
数组的定义
4、数组下标是从0开始,在上例中五个字符各自存放在 buffer[0]、 buffer[1]、 buffer[2]、 buffer[3]、 buffer[4] 中。由此说明下标表明了数组元素到数组开始的偏移量 (差值)。
5、数组的大小在编译的阶段确定,在C语言中只允许固 定大小的空间。而在C++允许利用堆空间动态的建立数组 (稍后详解)。 6、数组必须先定义,后应用,其作用域和单个变量相同。 局部数组没初始化的内容不定,而全局数组和静态局部数 组则初始化为全0。
Biblioteka Baidu13
一维数组的引用
数组中的元素全部要通过下标来访问。 在数组定义后,给数组赋初值时,必须一 个个元素逐个访问。 字符数组,也称为字符串。在数组中,以 ′\0′的方式作为结束符。
9
函数的调用
函数调用的一般形式:
函数名(实参表列);
调用方式
函数语句:不要求带回值,只完成一定的操作 函数表达式:c=2*max(a,b) 函数参数:c= max(max(a,b),7)
几点说明 被调用的函数必须是已经存在的函数 使用库函数,用#include包含相关头文件 用户自定义函数必须有函数原型