自考2019版《C++程序设计》04747,第二章面向对象的基本概念(附课后习题答案)

考试题型:主要在选择题、填空题、程序填充题,比分占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

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuuuuuuling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值