




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 章 面向对象基础知识 1-1. 教学目的与要求 1复习 C语言中学过的面向过程基本知识; 2学习 C+中增加的面向过程基本知识。 1-2. 主要内容及重点: 本章介绍了数据类型,运算符和表达式,简单的输入/输出;流程控制语句; 函数和编译预处理;数组;结构体、共用体和枚举类型 ;指针和引用等基本概 念和知识点。 本章的重点是:初步的输入/输出流、函数重载、参数特殊的函数、new 和 delete运算符。 1-3. 第 1 章面向对象基础知识 -课件 1-4. 第 1 章 面向对象基础知识-复习总结 本章复习和补充了数据类型,运算符和表达式,简单的输入/输出;流程控 制语句;函数和编译预处理;数组;结构体、共用体和枚举类型 ;指针和引用等基本概 念和知识点。 注意复习和加强理解“初步的输入/输出流、函数重载、参数特殊的函数、 new和 delete运算符”等 C语言中没有的 C+中新增加的面向过程的知识点。 1-5. 第 1 章 面向对象基础知识-练习 1-5-1.思考题: 1-5-2.练习题: 见练习单元。 2 第 1 章 面向对象基础知识 (课件) 本章介绍了数据类型,运算符和表达式,简单的输入/输出;流程控制语句; 函数和编译预处理;数组;结构体、共用体和枚举类型 ;指针和引用等基本概 念和知识点。 本章的重点是:初步的输入/输出流、函数重载、参数特殊的函数、new 和 delete运算符。 11基本数据类型占用字节数 P56(第 5 章) P56 表 3.2 12注释语句 P21(第 2 章) 即注释行 1)在 C 中用”/*”及”*/”作为注释分界符号 例: /* This is a test */ 2)C+除保留了这种注释方式外,还提供了一种更有效的注释方式,其以”/” 开始,到行尾结束. 例如下面两条语句是等价的: x=y+z ; /*This is a comment */ x=y+z ; / This is a comment 3) C+的”/”注释只在本行起作用。 注释多行时可用”/*/”,或每行都用”/”; “/*-*/”可以嵌套/方式,如: /* This is a multilane comment inside of which / is nested a single_line comment Here is the end of the multilane comment.*/ 13位运算符 P71(第 3 章) 位运算是对其操作数按二进制数的形式逐位进行的逻辑运算或移位运算。 位运算符的操作数只能是任意整数类型的数据。 位运算共有 6 种类型: 1按位取反运算符(): 将操作数的各个二进制位按位取反。即 0 变 1,1 变 0。该运算符为单目运算符。 例:某整形数 a=110101B , 则a 为 0xffffffca。 2按位与运算( cout.setf (ios:scientific, ios:floatfield) ;/设置为科学表示格式,只适用于实型 cout # include void main ( ) int a=2 , b=3 , c=4 ; cout变量名 2变量名 n ; 其中运算符“”为提取运算符,其作用是暂停程序执行,等待用户从键盘输入数据,用户输入的 数据赋给相应的变量。 在提取运算符后必须且只能有一个变量;变量的类型可以是基本数据类型、导出数据类型和指针类型。 在 cin 后的“” 可以重复多次。 1输入整数和实数 例 1.4.6 1.8 用 cin 输入整数和实数 # include void main ( ) int a ; float b ; cin ab; /A 运行该程序时,输入: 12 34.2 在执行 cin 语句时,暂停程序执行,要求输入两个整数,输入时将两个整数之间用空格分开, 将 12 赋值给变量 a,将 34.2 赋值给 b。 也可以输入: 12 34.2 结果一样。 1)输入多个整数或实数时,要将这些实数之间用空格或回车符分隔。系统会自动跳过空格和回车符, 将输入的整数或实数依次赋给各提取运算符中的变量。 2)回车在这里有两种作用;一种作为分隔符,另一种用作刷新缓冲区,并通知 cin 已输入一行数据, 这时 cin 开始从该行中提取数据,并将它们依次赋给相应的变量,若仍有变量没有赋值,则等待用户 继续输入数据。 3)输入数据的顺序、类型要与对应的变量的顺序、类型一致,否则会出现错误的结果。 例上例: # include void main ( ) int a ; float b ; cin ab; /A 7 运行该程序时,输入: A B 则结果,变量 a 的值为零,B 为一个不确定的结果。 4)在输入过程中,实型转换为整型的规则不成立。 例上例,若输入: 2344 11.4 则 a 的值为 23 ,b 的值不为 11.4,而是 0.44。 但对实型变量输入整数则是可以的。 例: float x , y ; cinxy; 输入:2 5 则变量 x 和 y 的值分别为 2.0 和 5.0 。 5)对整型变量可以通过流格式控制函数 dec、oct、hex 输入十进制(默认) 、八进制和十六进制的数 据。 例如: 例 1.4.7 1.9 以八进制和十六进制输入整数 # include void main ( ) int a , b ,c ; cinhexab; cinoctc; cout 则 a、b、c 的输入值(默认十进制)分别为: 164、207、28 2输入字符数据 当提取运算符后的变量为字符型时,必须输入字符。 例 1.4.8 1.10 用 cin 输入字符数据 # include void main( ) char ch1 , ch2 , ch3 ; cin ch1ch2ch3; cout c 则 ch1、ch2、ch3 分别为 a、B、c 。 若输入: aBC 则结果 ch1、ch2、ch3 值为 a、B、c 。 若输入: 34 B cCR 则结果 ch1、ch2、ch3 值为 3、4、B。 提取运算符将 34 看成两个字符。 3要获取输入的空格或回车键,直接用提取运算符“ ) ; 该函数可以没有参数,这时它可用作暂停功能。当有一个参数时,必须为字符型的变量。它的作用是 等待键盘输入,并将输入的数据赋给参数,它的特点是不会自动跳过空格和回车键。 例 1.4.9 1.11 用函数 cin.get ( char ) 获取字符 # include void main ( ) char ch1、ch2、ch3 ; cin.get (ch1) ; cin.get (ch2) ; cin.get (ch3) ; cout 则 ch1 值为a ,ch2 的值为空格,ch3 的值为b 。 若输入 ab CR 则 ch1 值为a ,ch2 的值b,ch3 的值为回车符。 15函数重载 P142(第 5 章) 在 C 中,函数名必须是唯一的,也就是说不允许出现同名的函数。当要求编写求整数、浮点数 和双精度数的平方数的函数时,若用 C,必须编写三个不同名的函数。例: Isquare (int i); /求整数的二次方 Fsquare (float i); /求浮点数的二次方 Dsquare (double i); /求双精度数的二次方 在 C+中,可以重载函数。只要函数参数的类型不同,或者参数的个数不同,或者二者兼而有之,两 个或者两个以上的函数可以使用相同的函数名。 函数重载 P142(第 5 章) 1)函数重载:即函数名重载,指同一个函数名可以有多个函数实现,或者说实现不同功能的函数 可以具有相同的函数名。 或者::当两个或者两个以上的函数共用一个函数名时,称为 函数重载 。被重载的函数称为 重载 函数 。 2)函数重载的条件: C+编译器在进行函数调用时是根据函数名和函数参数来决定调用哪个函数的,所以要实现函数 名重载,必须满足下列两个条件之一: 参数的个数不同。 参数的类型不同。 3)一般而言,重载函数应执行相同的功能,例如 abs()函数一般用来返回一个数的绝对值,如果 重载 abc()函数,让它返回一个数的二次方根是不可取的。 注意: 仅仅函数返回值不同并不能区分两个函数。 例 1.5.1 3.3 利用参数类型的不同实现重载函数。 # include int Abs ( int x ) / cout=0 ? x :-x ; 9 double Abs (double x) / B coutn ; return x=0?x :-x ; void main ( ) cout int square (int i) return i *i ; float square (float f) return f*f ; double square (double d) return d*d ; int main() int i =12; float f=3.4 ; double d=5.67 ; cout int max (int a , int b) ; int max (int a , int b, int c ) ; int max (int a , int b, int c, int d ) ; void main() coutb ? a :b ; int max (int a , int b, int c ) 10 int t = max (a , b) ; return max (t , c) ; int max (int a , int b, int c, int d ) int t1= max (a ,b ) ; int t2=max (c,d ) ; return max(t1 , t2) ; 运行结果: 5 9 23 例: #include int mul (int x ,int y) return x*y int mul (int x,int y,int z) return x*y*z; void main() int a=3,b=4,c=5; cout void Delay(int n=1000) /A for(;n0;n-); void main(void) cout # define PI 3.1415926 float Volume (float r ,float h=10) ; /A void main(void) float r ,h ; coutrh; coutr; cout 函数名() - /函数体 后多了省略号,表示省略参数个数的形参表。此时,在(中至少要有一个固定 参数,即在省略号之前必须至少有一个固定的参数,即固定参数必须放在参数表的前面。然而在函数 调用时可以没有可变的参数。 例 1.6.3 320 设计一个程序,求若干个数的和 #include #include #include int Sum(int Num ) va_list ap; int s=0 , Temp ; va_start(ap,Num); /A for(int i=0 ; i=new (初始值) ; 或 =new (表达式); 第一种形式为 所指向的数据分配大小为 sizeof()个字节的连续存储空间,初始值是 可选的,它为所分配的存储空间指定初始值。 第二种形式为 所指向的数据分配指定大小的数组空间,其中表达式为整型常量或变 量 ,此时为)*个字节 如果用 new 运算符动态分配不成功,则 new 运算符返回 NULL(0) ,此时指针为空指针。如果 分配成功,则 new 运算符返回所分配的存储空间的首地址,并将该地址赋给 。 空指针通常出现在动态分配较大的数组空间或成员较多的结构和对象等情形中,如果出现这种情 况,要进行空指针识别处理,如: float *fp; fp=new float 5000; if(fp= =0) /判断是否成功分配内存空间 cout;将动态分配给指针变量的内存空间归还给系统。 或 delete;将动态分配给的数组空间归还给系统 3)用 new 运算符为某个指针变量所指向的数据动态分配存储空间之后,必须用 delete 运算符进行撤 消,否则该存储空间将一直被占用,直到关闭计算机。另外,只有使用了 new 后,才能用 delete 撤消。 4)用 delete 时,只是撤消为某个指针变量所指向的数据所动态分配的内存空间,并没有取消该指针 变量。 例 1.7.1 6.30 内存的动态分配和撤消 #include #include void main() int *p1, (*p2) 8; float *p3; char *p4; float *p5=new float(2.5); /A int *p6; p1=new int (2) ; /B cout #include struct node int x ; float y; char z10; ; void main() 15 node *pn ; pn=new node ; /A pn-x=2 ; pn-y=4.3; strcpy(pn-z ,“china!“) ; coutxyzn; delete pn; 运行结果: 2 4.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理公共关系学重点分析及试题答案
- 2025-2030年房产交易管理行业市场发展分析及发展前景与投资机会研究报告
- 2025-2030年布鞋行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年塑胶跑道市场发展现状分析及行业投资战略研究报告
- 2025-2030年型材行业投资机会及风险投资运作模式研究报告
- 2025-2030年国内鲜果菜汁饮品行业市场发展分析及投资发展前景研究报告
- 2025-2030年啤酒行业投资机会及风险投资运作模式研究报告
- 2025-2030年医用材料产业市场深度调研及发展趋势与投资前景预测研究报告
- 2025-2030年包装饮用水行业市场深度分析及发展趋势与投资战略研究报告
- 工程经济基础知识试题及答案
- 银行评估明细表
- 水稻脱粒机毕业设计毕业设计
- 《光学原理与应用》之双折射原理及应用
- 完整版电力工程设计资质分级标准
- 硬笔书法练习用纸A4打印模板
- U8ERP实施方案
- 配电间及机柜室方案
- 中国民用航空通信导航监视系统运行、维护规程
- 5000吨干货船设计总体方案及第三部分
- fx-991cnx计算器说明书
- 魔法奇缘英文脚本台词
评论
0/150
提交评论