文档介绍:第一章面向对象及C++基础知识课程内容:1、 面向对象程序设计基础知识(识记)2、 基木程序结构(综合应川)3、 类型修饰符(领会)4、 函数原型(综合应丿IJ)5、 内联函数(综合应用)6、 引用(综合应用)7、 动态内存分配(简单应川)8、 编译指令(领会)9、 改变)1血向对象程序设计基础知识:程序语言:木身实际上是对一个现实问题的描述;其发展的根木问题在于如何更加接近人的自然思维。(机器一>汇编一>高级语言;血向过程一>面向对彖)面向对象:—•种软件方法(方法学),而不仅仅限于程序设计语言,更重要的是如何看待世界。基本思想:从现实世界屮客观存在的事务(对彖)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。血向对彖程序设计语言:定义:机器实现的定义。数据和操作在一起,内存块可以复制副本对象间通过函数调川实现通信;对象的继承关键要素:抽象:忽略事物的非木质特性,只注意与当前「I标有关的木质特征,从而找出事物的共性;把具有共同性质的事物划为一类,得到一个抽象的概念。封装:将一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。(意义:对象集屮而完整的描述并对应一个具体的事物,封装的信息隐蔽作川反映了事物的相对独立性;减少“波动效应”。副作用:增加了许多只负责读写的服务。)继承:特殊类的对象拥有其一般类的对象的全部属性与服务,称作特殊类对一般类的继承。多态:一般类中定义的属性或服务被特殊类继承Z后,可以具有不同的数据类型或表现出不同的行为。(目前不要求OOPL支持)C++语言的来龙去脉:对C语言进行血向对象的扩展。一种混合型OOPL。C语言的一个超集,语法基本使用C的语法,++基本程序结构:讨论C++对C的一些改进风格:1) 输入输出:cin和cout代替printf,,更加方便。2) 注释:’7厂的引入3) 使用const(代替无参数宏)和内联函数(代替有参数宏)代替宏定义4) 苗数原型(更强的编译时刻的检杳)和缺省参数(方便苗数调用、减少错误)5) 新的动态内存分配函数ncw/dclctc:使用上更加简单6) 新的换行符一endl内联函数inline:1) 不是川函数调丿IJ的机制,编译遇到时简单的替换而已,省去了函数调川的额外开销2) 使用宏定义的副作用:#definef(x)(x+1);在后面使用f(l)展开成:(x)(x+1)(1),报编译错,但容易发现参数中有表达式:#definefloor(x,b)x>=b?0:1,调用:if(floor(a&0x0f,0x07))//...展开成:if(a&0x0i>0x07?0:l)...;&优先级低丁〉,产牛错误。难发现,好解决一一加括号#defineband(x)(((x)>5&&(x)<10)?(x):0)下面的执行结果如何?for(inti=4;i<11;i++){inta=i;out«na=n«a«endl«out«"band(++a)="«band(++a)«endl;out«"\ta="«a«endl;}展开后会影响到a的值(++a)。这一点和函数调用不同(函数一般传值)。宏没有作用域的问题引用:使引用和原來定义的变量-•样无区别的操作内存的某一空间。最主要用途:建立函数参数传递的引川传递方式,不必使川指针;另一个川途:返回引用的函数,用于赋值运算符的左边。两种情况下引用的是临时变量:对常量(或consl修饰的变量)的引用;引用类型和初始化时使川的变量类型不一致。定义返回引用了函数时,不要返回局部变量的引用。编译指令:不是C++的一部分,提供给编译器使川恢入指令:#include<filename>/#include"filename”宏定义:#define宏名替换正文条件编译指令:#if,#else,#endif,#defined3改变习惯重新思考C++不仅仅是在语法上对C的扩展,改变的是幣个程序设计的方式和思路几个掌握C++新特性的途径(目前)++的知识。头文件和预处理指令:〉include“”ifndef:为了防止宏的重复定义数据和表达式:词法符号关键字:C++的保留字,具有自己确定的意义;不能被重新定义为标识符。标识符:用作变量名、函数名、类型名。规则:以字母或下划线开头,后而可跟数字、下划线及大小写字母。长度限制由具体编译器决定。标点:语法要求,无实际意义。基本数据类型:基本类型:char、int^floatdouble>void修饰符:signed/unsighed>short/long常量:整常量(十进制、八进制:0开始、十六进