1C++程序设计教材:机械工业出版社/刘振安2需要了解的C语言知识C语言基本语法Ifelse语句For语句While语句数组定义函数定义指针结构体运算符3第一章认识C++的对象本节要点:C与C++的关系(领会)掌握函数原型和命名空间的使用方法(综合应用)对象和预处理基本概念(领会)掌握C++程序的基本结构(综合应用)1.1初识C++的函数和对象4第一章认识C++的对象1.1初识C++的函数和对象C语言回顾intx;该语句在C语言和C++中均可使用,x在C语言中称为变量,在C++中称为对象。C语言与C++的不同点:称呼不同5第一章认识C++的对象1.1初识C++的函数和对象C语言回顾结构体的定义structpoint{floatx;floaty;};表示定义一种点数据类型,包含坐标x,y.定义完成后,point成为一种类型,使用方式类似int类型如:定义p1变量为点类型,写作:structpointp1;或pointp1;定义x变量为整型:intx;6第一章认识C++的对象1.1初识C++的函数和对象C语言回顾结构体的定义structstudent{intnum;charname[10];floatgrade;};若定义一种结构体记录学生信息包含学号,姓名,成绩,如何定义?定义s1变量为学生类型,写作:structstudents1;7第一章认识C++的对象1.1初识C++的函数和对象例1.1输入一个点的信息,求该点到原点的距离预处理命令,使用命名空间,声明函数,声明常量,定义结构体,主函数main求距离函数result8例1.19例1.1主函数10例1.111第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:1,混合型语言C语言程序包含main函数面向对象语言没有main函数C++是混合型语言12第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:2,注释方式/*。。。。*///。。。。13第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:3,输入输出流cin和cout是C++语言中进行输入输出操作的函数。其定义在isstream头文件中。类似:C语言中printf函数scanf函数putchar函数getchar函数,使用时要包含“stdio.h”14第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:3,输入输出流cin和cout函数的简单使用cout后加要输出的内容,可以是对象或字符串,行末加分号,可用多个来分隔多个输出对象,endl;表示输出后换行。coutendl;等价于cout“\n”;15第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:3,输入输出流cin和cout函数的简单使用cin后加存放数据的对象,即变量,行末加分号,可用多个来分隔多个输入对象。cinxy;等价于cinx;ciny;16第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:4,使用命名空间是C++语言中封装程序库名称的一种机制记忆:C++标准类库中的对象和函数都属于std命名空间使用这些对象和函数时要usingnamespacestd17第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:4,使用命名空间使用std命名空间时注意:使用C语言中的头文件时,要写成“xxx.h”形式使用C++中的头文件则不能加上“.h”18第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:5,对象定义及初始化intx;x=0;等价于intx=0;C语言intx(0);C++语言等价于上两条语句。此种初始化语法在C++中称为构造函数语法19第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:6,函数原型及其返回值函数要有类型,若要得到处理结果则要使用return语句。20第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:6,函数原型及其返回值函数原型声明函数调用在函数定义之前时要对函数进行声明2122第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:7,const修饰符和预处理程序常量定义:#definePI3.1415(c语言)在变量定义之前加上const关键字,表示定义的变量值不可改变。constintPI=3.1415;constintPI(3.1415);23第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:7,const修饰符和预处理程序常量定义:#definePI3.1415#define命令的特点:原样替换掉程序中出现的预定义宏名符号如:#defineBUFFER100若程序出现:x=BUFFER/3;x=?尽量选择const定义常量24第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:7,const修饰符和预处理程序const关键字的特点:利用const定义常量时必须给出常量的值,除非该常量是extern的。如:constintd;externconst;作业:1,extern变量是什么样的变量?25第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:7,const修饰符和预处理程序C++预处理命令以#开始,分为宏定义,文件包含和条件编译作业:2,写出C语言中预处理命令有哪些,举例说明每个命令含义及作用。3,写出C语言和C++语言中#include命令的不同处26第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:8,程序运行结果27第一章认识C++的对象1.1初识C++的函数和对象对程序的说明:9,程序书写规则注意缩进对齐,使程序清晰明了281.2认识C++语言面向过程编程的特点本节要点:函数重载(领会)掌握C++的新数据类型(简单应用)动态分配内存(综合应用)熟练掌握引用的使用方法(综合应用)了解对指针使用const限定符的目的,方法(识记)了解泛型算法应用于普通数组的方法(识记)掌握数据的简单输入输出(简单应用)29第一章认识C++的对象1.2认识C++语言面向过程编程的特点本节要点:1.2.1函数重载(领会)C++允许一个函数定义多个版本。使得一个函数完成多种功能。即:同一个函数名定义多次。301.2.1函数重载(领会)重载函数max的调用形式:311.2.1函数重载(领会)重载函数max的定义形式:321.2.1函数重载(领会)重载函数max的声明形式:可否不声明??重载函数的要点:函数名相同,参数个数不同,参数类型不同331.2.2C++的新数据类型(简单应用)1,void类型void表示无类型,或空类型。不能声明变量,只能声明函数返回值。表示函数无返回值。342,bool型(逻辑型,布尔型)占1个字节。表示逻辑运算中的”真””假”3,整型(intlongshort)int、short至少16位long至少32位short不得比int长int不得比long长354,char型(字符型)占1个字节。5,实型(float/double/longdouble)365,&取地址符intx;&x表示????什么样的变量可以存放&x?????int*p;p是指针变量,指针变量能存放变量的地址。P=&x;376,常量表示整型:0前缀表示8进制数,0x前缀表示16进制加L、l后缀表示长整型常量实型:F、f后缀表示浮点型常量(float)实数加L、l后缀表示longdouble型无前缀,无后缀的为double型386,常量表示0L123l0550x50xaf017,转义字符‘\101’‘\t’‘\r’‘\n’‘\0’‘\x41’391.2.3动态分配内存(综合应用)new动态分配内存一般格式:指针变量=new类型[size];new运算符得到新分配空间的首地址,赋值给指针变量后,可根据指针变量的加减运算来使用这些空间。delete释放内存使用完毕后要释放内存deletep;pP+3P+1401.2.4引用的使用方法(综合应用)C++中新的表示形式。引用即使用变量的别名。定义形式:数据类型&别名=对象名;作用:别名与对象名对应同一个对象,共用同一段内存。对别名的修改会造成原对象的修改。例如:intx;int&a=x;表示a是变量x的别名。一旦定义别名后则a和x完全等价。411.2.4引用的使用方法(综合应用)C++中新的表示形式。引用即使用变量的别名。定义形式:数据类型&别名=对象名;作用:别名与对象名对应同一个对象,共用同一段内存。对别名的修改会造成原对象的修改。例如:intx;int&a=x;表示a是变量x的别名。一旦定义别名后则a和x完全等价。421.2.4引用的使用方法(综合应用)C++中新的表示形式。引用即使用变量的别名。定义形式:数据类型&别名=对象名;43使用引用时注意:1,不能定义引用的引用int&&r=x;2,不能直接定义数据组的引用441.2.4引用的使用方法(综合应用)一般格式:typedef类型类型别名使用typedef定义某类型别名后,可使用该别名来定义相关对象。例如:typedeflongintlint;则longinti;等价于linti;用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头45引用数组名作参数一般格式:typedef类型类型别名使用typedef定义某类型别名后,可使用该别名来定义相关对象。例如:typedeflongintlint;则longinti;等价于linti;46Typedef使用说明typedef用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头等价于471.2.5对指针使用const限定符(识记)1,左值和右值表达式:E1=E2E1是左值,是可被修改的int*p,x=1;*p=2;&p表示什么?481.2.5对指针使用const限定符(识记)2,指向常量的指针const常量定义,表示const后的表达式不可改变,定义时必须给出表达式的值。intx=11;constint*P;constint*P=&x;表示*P是不可改变的。*P不能在=左侧。P=&y;x=12;491.2.5对指针使用const限定符(识记)3,常量指针const常量定义,表示const后的表达式不可改变,定义时必须给出表达式的值。intx=11;int*constP;错!必须初始化int*constP=&x;表示P是不可改变的。P不能在=左侧。*p可改变。501.2.5对指针使用const限定符(识记)4,指向常量的常量指针const常量定义,表示const后的表达式不可改变,定义时必须给出表达式的值。intx=11;constint*constP=&x;表示P是不可改变的。*p不可改变。511.2.6泛型算法应用于普通数组(识记)掌握数据的简单输入输出(简单应用)泛型算法是C++标准模板库(StandardTemplateLibrary)提供的一组操作。利用这些操作可以简化数组操作。要使用这些操作必须包含头文件algorithm521.2.6泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:1,reverse(a,a+len)将数组a中的元素顺序反转。(逆向)2,copy(a,a+len,b)将a数组的内容原样复制给b数组reverse_copy(a,a+len,b)将a数组的内容反转后复制给b数组531.2.6泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:3,sort(a,a+len)将数组a中的元素按升序排序4,sort(a,a+len,greatertype())将数组a中的元素按降序排序541.2.6泛型算法应用于普通数组(识记)假定a,b是两个数组名,其长度为len操作示例:5,find(a,a+len,value)在数组a中查找值为value的