考试题型:主要在选择题、填空题、程序填充题,比分占8%左右。
第一节、结构化程序设计
1、结构化程序设计叫面向过程的设计方法,思想:自顶向下、逐步求精、模块化,把大问题分解为小人物,用函数来完成,将逻辑功能相关独立的程序设计成函数。
程序=数据结构+算法
2、结构化程序的局限性:对变量进行的操作函数可能散布在程序的各处,如果变量类型有所变化,则相关的函数都需要修改,程序的维护开销较大。程序规划庞大时,会变得难以理解、难以扩充、难以查错和难以复用。
3、结构化程序设计三种基本程序结构:顺序、选择、循环
第二节、面向对象程序设计的概念和特点
一、面向对象思想的特点
① 面向对象的程序设计方式更接近于人们看待真实世界
② 对象具有两个特性:状态(属性)、行为(操作),在程序中属性用变量来表示,操作用函数来实现
③ 类:对现实客观事物的抽象,找出同一类对象的共同属性(静态特征)和行为(动态特征)
④ 对象是类的实例,类是对象的一个抽象。
⑤ 面向对象的程序设计有四个基本特点:抽象、封装、继承、多态
⑥ 封装、继承、多态
1、封装:将对象的属性及实现细节结合在一起,构成独立的实体。封装可以将对象的部分属性和函数隐藏起来,对外不可见,将另外一部分对外课件,提供操作的接口。
2、继承:在编写新的类时,以现有的类为基础,使得新类从现有的类派生出来,达到代码扩充和复用的目的。原来的类时基类(父类、超类),新类是派生类(子类),继承提现了类的层次关系。
3、多态:指不同种类的对象具有名称相同的行为,具体行为的实现方式有所不同。在一个类或者多个类中,可以让多个方法使用同一个名字。
第三节、类的初步知识(重点)
一、类的定义
面向对象方法中的类,是具有相同属性和行为的同一类的对象的抽象描述,其内部包括属性(本类的成员变量)和行为(本类成员函数)两个部分。类是用户自定义的数据类型。格式为
class 类名{
访问范围说明符:
成员变量;
访问范围说明符:
成员函数声明;
};
1、访问范围说明符有三种:public(公有)、private(私有)、protected(保护)
2、类中的成员变量不能在声明时进行初始化。成员函数定义在类体内部,则默认为内联函数,也可以在类体内部声明函数,并加上inline,然后在类体外给出函数的定义,这样也是内联函数。
3、成员函数在类体外定义:类体内必须有函数原型,类体外函数定义前必须用“类名::”作用域运算符。
第四节、类的示例程序解剖
一、成员变量与成员函数的定义
1、一个完整的C++程序包括:主函数main、用户定义的任意多个的类及全局函数、全局说明、注释、头文件。
2、成员变量一般定义为私有访问权限,仅在本类中访问。
3、使用类类型定义的变量称为类的对象,每个对象都有各自的存储空间。
4、在类体外定义成员函数时,要指明类的名称。因为函数体代码较长,在类体内仅给出成员函数的原型, 在类体外给出对应的函数体。如果函数体定义在类体内,系统将视为内联函数。
5、在类中定义的成员函数允许重载。成员函数在内存中只有一份,每个对象共享。
二、创建类对象的基本形式
1、定义对象的两种方法:
(1)方法一:
类名 对象名;//多个对象可用逗号隔开一起定义
类名 对象名(参数)
类名 对象名 = 类名(参数)
(2)方法二:
类名 *指针名 = new 类名;//成员变量不能进行初始化
类名 *指针名 = new 类名(); //编辑器提供的构造函数进行初始化
类名 *指针名 = new 类名(参数)
2、对象的引用、指针、数组
(1)对象的引用
类名 &对象引用名 = 对象;
(2)对象的指针
类名 *对象指针名 = 对象的地址;
(3)对象数组
类名 对象数组名[数组大小];
第五节、访问对象的成员(重点)
1、使用对象访问成员,通过对象访问的一般格式:
对象名.成员变量名
对象名.成员函数名(参数)
要注意:成员的访问权限,私有成员在类的外部不可以直接调用
2、使用指针访问,格式为:
指针->成员名
3、使用引用访问,格式为:
引用名.成员名
第六节、类成员的可访问范围(难点)
1、范围说明符的含义
public:公有的,在程序的任何地方都可以访问
private:私有的,仅能在本类(或有元函数)中被访问
protected:保护的,能在本类及子类中访问
如果某个成员没有范围修饰符,则默认为私有成员!!
只有在类内和在有元函数内才可以访问私有成员。
第七节、标识符的作用域与可见性
一、类成员的访问范围
1、标识符:类名、函数名、变量名、常量名等都是标识符
标识符的作用域:标识符的有效范围
标识符的可见性:在程序的那个区域可以使用
C++标识符的作用域:函数原型作用域、局部作用域(块作用域)、类作用域、命名空间作用域
(1)函数原型作用域,C++中最小的作用域
如:函数声明double ares(double radius);//作用域为左右括号之间
(2)局部作用域
程序中使用大括号括起来的一段程序块,其作用域从声明处开始一直到声明所在的块结束的大括号为止。{}
(3)类作用域:访问类的成员,要注意访问修饰符的限定
(4)命名空间作用域
不同模块中的类和函数之间可能发生命名冲突
课后习题答案:
一、选择题
1-5、CADDC 6-9、ACDA
二、填空题
(1)主函数 (2)private、public、protected (3)必要的参数 (4)*A1.p=10
(5)指针或引用(6)成员变量 (7)fun2()
三、程序填空题
1、
x=i
y=j
mt.getx()<<endl
2、
a.fun(1,10)
a.fun(2,-1) //注:这里第二个参数小于0的都可以
3、
protected:
A::
四、程序分析题
1、输出结果:
20
2、输出结果:
2
3、输出结果:
10 20
11 21
12 22
13 23
14 24
88 89
88 89
88 89
88 89
88 89