(1)结构化程序设计强调从程序结构和风格上研究程序设计。结构化程序设计的程序代码是按顺序执行的,有一套完整的控制结构 ,
函数之间的参数按一定规则传递,不提倡使用全局变量,程序设计的首要问题是“设计过程”。
模块化程序设计将软件划分成若干个可单独命名和编址的部分,称之为“模块”。模块化程序设计的设计思路是“自顶向下,逐步求精”,
其程序结构是按功能划分成若干个基本模块,各模块之间的关系尽可能简单,在功能上相对独立。模块和模块之间隔离,不能访问模
块内部信息,即这些信息对模块外部是不透明的,只能通过严格定义的接口对模块进行访问。模块化程序设计将数据结构和相应算法
集中在一个模块中,提出了“数据结构+算法=程序设计”的程序设计思想。模块化能够有效地管理和维护软件研发,能够有效地分解和
处理复杂问题。但它仍是一种面向过程的程序设计方法,程序员必须时刻考虑所要处理数据的格式,对不同格式的数据做相同处理或
对相同数据格式做不同处理都要重新编程,代码可重用性不好。
面向对象程序设计面对的是一个个对象,用一种操作调用一组数据.把数据和有关操作封装成一个对象。各个对象的操作完成了,总的任
务也就完成了.他适用于编写大型程序.结构化程序设计和模块化程序设计适用于比较小的程序,他要求细致的描写程序设计的每个细节.
(2)类:在面向对象程序设计中,类是具有相同属性数据和操作数据的函数的封装,它是对一类对象的抽象描述。
对象:在面向对象程序设计中,对象是由对象名、一组属性数据和一组操作封装在一起构成的实体。其中属性数据是对象固有特征的
描述,操作是对这些属性数据施加的动态行为,是一系列的实现步骤,通常称之为方法。
封装:封装是一种数据隐藏技术,在面向对象程序设计中可以把数据和与数据有关的操作集中在一起形成类,将类的一部分属性和操
作隐藏起来,不让用户访问,另一部分作为类的外部接口,用户可以访问。
数据抽象:抽象的作用是表示同类事物的本质,c++中的数据类型就是对一批具体的数的抽象。类是对象的抽象,对象是类的特例。
继承:在面向对象程序设计中,继承是指新建的类从已有的类那里获得已有的属性和操作。
多态:在面向对象程序设计中,多态性是指相同的函数名可以有多个不同的函数体,即一个函数名可以对应多个不同的实现部分。
(3)面向对象程序设计最突出的特点就是封装性、继承性和多态性。
① 封装是一种数据隐藏技术,在面向对象程序设计中可以把数据和与数据有关的操作集中在一起形成类,将类的一部分属性和操作
隐藏起来,不让用户访问,另一部分作为类的外部接口,用户可以访问。类通过接口与外部发生联系,用户只能通过类的外部接口使
用类提供的服务,而内部的具体实现细节则被隐藏起来,对外是不可见的。
② 在面向对象程序设计中,继承是指新建的类从已有的类那里获得已有的属性和操作。已有的类称为基类或父类,继承基类而产生的新
建类称为基类的子类或派生类.由父类产生子类的过程称为类的派生.通过继承,程序可以在现有类的基础上声明新类,即新类是从原有类
的基础上派生出来的,新类将共享原有类的属性,并且还可以添加新的属性。继承有效地实现了软件代码的重用 ,增强了系统的可扩
充性。
③ 在面向对象程序设计中,多态性是指相同的函数名可以有多个不同的函数体,即一个函数名可以对应多个不同的实现部分。在调用同
一函数时,由于环境的不同,可能引发不同的行为,导致不同的动作,这种功能称为多态.它使得类中具有相似功能的不同函数可以使用同
一个函数名.多态既表达了人类的思维方式,又减少了程序中标识符的个数,方便了程序员编写程序。多态是面向对象程序设计的重要
机制。
(4)在 C++语言中,字符串常量是用一对双引号括起来的字符序列,字符常量是用一对单引号括起来的一个字符。
(5)C++语言提供了两种定义符号常量的方法:① 用 const 语句定义符号常量,这种方法是 C++语言中广泛采用的定义符号常量的方法,
其一般格式为:const 数据类型 符号常量=表达式.② 用#define 语句定义符号常量,这是 C 语言中定义符号常量的方法,其中#define 是预处
理指令.其缺点是不能显示声明常量的类型。其一般格式为:#define 常量名 常量值
(6) while 把循环条件判断放在循环体执行前,而 do-while 循环条件判断放在循环体执行后,不管循环条件是否成立,它都至少执
行一次循环体。
(7)C++中函数定义的格式:类型 函数名(形参表){语句序列}
(8)函数原型又称函数声明,用来告诉编译器函数的名称;函数的返回类型;函数要接收的参数个数;参数类型和参数顺序,编译器用函数
原型验证函数调用.在定义函数之前常用函数原型加以说明.函数原型通常位于程序代码的开始处.在函数原型说明中也可以不给出参数
名,只给出类型.如果函数调用在函数定义之前则必须声明.若在后则可以不用声明。
(9)内联函数是在函数名第一次出现时在函数名之前冠以关键字 inline。在程序编译时,编译器将程序中出现的内联函数的调用表达
式用内联函数的函数体进行替换。使用内联函数,加快了程序的执行速度,节省程序运行时的开销。
(10)函数重载是指同一个函数名可以对应着多个不同函数的实现。原则:函数重载要求编译器能够唯一地确定调用一个函数时应执
行哪个函数代码。确定函数时,编译器是通过函数的参数个数、参数类型和参数顺序来区分的。也就是说,进行函数重载时,要求同
名函数参数个数不同、参数类型不同或参数顺序不同。否则,将无法确定是哪一个函数体。
(11)在使用函数的嵌套调用时要注意函数的返回地址,在函数体执行完毕后,一定要返回调用该函数的主调函数,不能出现越级返
回的情况。
(12)函数的递归调用的步骤:第一阶段:递推。将原问题不断分解为新的子问题,逐渐从未知向已知递推,最终达到已知的条件,
即递归结束的条件,这时递推阶段结束。第二阶段:回归。从已知条件出发,按照递推的逆过程,逐一求值回归,最后达到递归的开
始处,结束回归阶段,完成递归调用。
(13)在函数或者类内说明的变量是局部变量。全局变量是在函数和类外部定义的变量。