您好,欢迎访问三七文档
C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明1/1412020年2月9日星期日4时37分43秒OOP:C++程序设计C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明2/1412020年2月9日星期日4时37分43秒总目录第1章C++的初步知识第2章类和对象第3章关于类和对象的进一步讨论第4章运算符重载第5章继承与派生第6章多态性与虚函数第7章输入输出流第8章C++工具C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明3/1412020年2月9日星期日4时37分43秒教材谭浩强,C++面向对象程序设计(第1版),清华大学出版社,2006.1C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明4/1412020年2月9日星期日4时37分43秒参考书BjarneStroustrup著,C++程序设计语言(特别版),机械工业出版社,2002曹计昌等著,C++语言及面向对象程序设计,高等教育出版社,2004钱能,C++程序设计教程(第1版),清华大学出版社,2002C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明5/1412020年2月9日星期日4时37分43秒第1章C++的初步知识1.1从C到C++1.2最简单的C++程序1.3C++对C的扩充1.4C++程序的编写和实现1.5关于C++上机实践C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明6/1412020年2月9日星期日4时37分43秒1.1从C到C++计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序.世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言.先后出现了多种计算机高级语言.其中使用最广泛,影响最大的当推BASIC语言和C语言.BASIC语言是1964年在FORTRAN语言的基础上简化而成的,它是为初学者设计的小型解释型高级语言.C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明7/1412020年2月9日星期日4时37分43秒C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的.它不是为初学者设计的,而是为计算机专业人员设计的.大多数系统软件和许多应用软件都是用C语言编写的.C语言的特点语言简洁紧凑,使用灵活方便.C语言只有32个关键字,程序书写形式自由.丰富的运算符和数据类型.C语言可以直接访问内存地址,能进行位操作,使其能够胜任开发操作系统的工作.生成的目标代码质量高,程序运行效率高.可移植性好.C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明8/1412020年2月9日星期日4时37分43秒C语言的局限性类型检查机制相对较弱.使得程序中的一些错误无法在编译时发现,以此为代价保证程序运行的高效率,对程序员要求高.没有支持代码重用的语言结构.当程序的规模达到一定程度时,程序员很难控制程序的复杂性.如C语言在编译时对数组下标越界不作检查;对输入输出也不作类型检查.C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明9/1412020年2月9日星期日4时37分43秒随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了.C++是由AT&TBell(贝尔)实验室的BjarneStroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的.C++保留了C语言原有的全部特征,属性和优点,增加了面向对象(OO)的机制,其目的是提高大型软件的开发效率.学习C++,既要会利用C++进行面向过程的结构化程序设计,也要会利用C++进行面向对象的程序设计.两者互为补充,并不矛盾.outlineC++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明10/1412020年2月9日星期日4时37分43秒#includeiostream//包含头文件iostreamusingnamespacestd;//使用命名空间stdintmain(){cout″ThisisaC++program.″;return0;}Exg1_1.cpp(1of1)输出一行字符:”ThisisaC++program.”.运行结果:ThisisaC++program.1.2最简单的C++程序主函数•cout:输出流对象;:插入运算符;•cin:输入流对象;:提取运算符;•当遇到多个或时,从左往右依次进行,而非同时进行.•和本应是按位左移,右移运算符,但在iostream.h头文件中被重载为基本数据类型数据的插入运算符和提取运算符.函数返回(输入输出流)C++标准中规定其返回类型为int型,且正常结束返回0值,否则返回-1值.但在现有的一些C++编译器中写成void型也能通过编译,其原因是在做编译器的过程中,出于多种考虑,如软件开发成本,软件使用时的灵活性,软件执行效率等因素,对C++标准的执行程度不够彻底.类似的问题,即C++标准和编译器之间的出入还有很多,大家可以慢慢体会.(注:C语言不要求main函数一定是int型,一般用void型)cplusplusC++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明11/1412020年2月9日星期日4时37分43秒预处理命令(包含命令)两种写法:1.#include头文件.h2.#include头文件usingnamespacestd;由于这类文件都放在程序单元的开头,所以称为”头文件”(headfile).在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替#include命令行,然后再对该程序单元进行整体编译.C++所有语句都以分号(;)结尾,而预处理命令不是语句,故末尾无分号.其中,1是C语言中的写法,2是标准C++(即ANSIC++)中的写法,其原因在于C语言中无”命名空间”的概念;即C中只能用1,而C++中可用1和2.C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明12/1412020年2月9日星期日4时37分43秒命名空间(namespace)usingnamespacestd;表示使用命名空间std.C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C++标准库(此时就需要用#include命令行)时,就需要用“usingnamespacestd;”作声明,表示要用到命名空间std中的内容.(详见第8章)C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明13/1412020年2月9日星期日4时37分43秒主函数(main函数)C++程序是函数驱动的,即C++程序是由函数组成的,按其地位划分,可分为主函数(main函数)和普通函数(功能函数);C++规定:每个C++程序都有且只有一个main函数.每个C++程序的运行都从main函数开始,到main函数结束.即普通函数间可相互调用,而main函数只能是主调函数(调用函数),它由操作系统调用,最后返回操作系统.C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明14/1412020年2月9日星期日4时37分43秒输入输出流C中用printf,scanf等文件操作来完成数据的输入输出.不同于C,C++中引入了流的概念.C++的输入输出流是指由若干字节组成的字节序列,这些字节中的数据按顺序从一个对象传送到另一对象;流表示了信息从源到目的端的流动.这一举措既保证了I/0操作的类型安全(typesafe),又实现了I/0操作的可扩展性,从而提高了软件的复用性.当然,为此付出的代价是C++的I/0系统变得复杂,比较难于掌握.(详见第7章)C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明15/1412020年2月9日星期日4时37分43秒函数调用与返回若函数f1()调用函数f2(),则称f1()为主调函数,f2()为被调函数;函数f2()执行完成后须返回函数f1()调用处继续执行.函数执行完成后,其返回值由return带回:return(返回值);返回值的类型须和函数定义时的数据类型匹配.在C++中,表示一个函数时,即使无参,也应带上括号,即括号不可省.注意:并非一致此处括号可省outlineC++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明16/1412020年2月9日星期日4时37分43秒//求两数之和(本行是注释行)#includeiostream//预处理命令usingnamespacestd;//使用命名空间stdintmain()//主函数首部{//函数体开始inta,b,sum;//定义变量cinab;//输入语句sum=a+b;//赋值语句cout″a+b=″sumendl;//输出语句return0;//程序正常结束,向操作系统返回一个零值}//函数结束Exg1_2.cpp(1of1)求a和b两个数之和.运行结果:123456↙a+b=579换行,endline的缩写注意:两个数据中间用空格作间隔,此处不能用其他符号间隔.C++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明17/1412020年2月9日星期日4时37分43秒关于注释:顾名思义,注释部分只是起到对原程序行的解释说明作用,而本身并不参与编译.C++忽略注释,并把每个注释都视为一个空格.所谓”勤笔免思”,在程序适当的地方加上的注释是良好的编程习惯,使得程序功能一目了然,省去了很多不必要的麻烦,降低了维护的成本,是程序员应该注重的一个环节.两种注释方法:C中用/*和*/将需要注释的部分括起来,可跨行.C++中既可沿用C中的注释方法,也可用//提启某行注释内容,只限于单行.类似地,虽然C++在程序书写格式上不作限制,但一个C++程序员一开始也应该养成一个良好的习惯,采取缩进对齐的编程风格.outlineC++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明18/1412020年2月9日星期日4时37分43秒#includeiostream//预处理命令usingnamespacestd;intmax(intx,inty)//定义max函数,函数值为整型,形式参数x,y为整型{//max函数体开始intz;//变量声明,定义本函数中用到的变量z为整型if(xy)z=x;//if语句,如果xy,则将x的值赋给zelsez=y;//否则,将y的值赋给zreturn(z);//将z的值返回,通过max带回调用处}//max函数结束Exg1_3.cpp(1of2)outlineC++面向对象程序设计------第1章C++的初步知识湖北大学数计学院计科系朱明19/1412020年2月9日星期日4时37分43秒intmain()//主函数{//主函数体开始inta,b,m;//变量声明cinab;//输入变量a和b的值m=max(a,b);//调用max函数,将得到的值赋给mcout”max=”m’\n’;//输出大数m的值return0;//程序正常结束,向操作系统返回一个零值}Exg1_3.cpp(2of2)给两个数x和y,求两数中的大者.运行结果:1825↙max=25编译是由上至下进行的.max函数出现在main函数之前,因此在main函数中调用max函数时,编译系统能识别max是已定义的函数名.如果把两个函数的位置对换一下,即先写main函数,后写max函数,这时在
本文标题:c++教程
链接地址:https://www.777doc.com/doc-3591392 .html