好文档 - 专业文书写作范文服务资料分享网站

2018-2019学年第二学期期末考试《面向对象程序设计》大作业参考答案

天下 分享 时间: 加入收藏 我要投稿 点赞

吉林大学网络教育学院

2018-2019学年第二学期期末考试《面向对象程序设计》大作业

学生姓名 专业 层次年级 学号 学习中心 成绩

年 月 日

一、名词解释(每小题3分,共30分)

1、类

类(Class)是面向对象程序设计实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。 2、对象

对于事物我们可以把他们看作是一个对象,而每一个事物都有自己的表示的属性和对于某一信息作出的相应的操作。而这些东西就变成了事物的属性和方法。对象是一种无序的集合数据类型,它由若干键值对组成。 3、运算符重载

C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性 4、析构函数

类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。 析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。 5、继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 6、多态

同一个程序中同名的不同方法共存的情况

7、引用

是对象的别名,能间接访问对象

8、友元

开放一个类非 public 属性成员访问权限的机制 ,友元机制是对封装机制的补充,利用此机制,一个类可以赋予某些函数访问它私有成员的特权。

9、模板

1、定义函数族或者类族的方法,分类函数模板和类模板,本质是将类型变量化 10、名字空间

名字空间除了系统定义的名字空间之外,还可以自己定义,定义名字空间用关键字“namespace”,使用名字空间时用符号“::”指定。

不指定名字空间的变量或函数都是当前名字空间下的变量或函数。

不定义名字空间的情况下,都属于全局名字空间。同一个名字空间可以定义多次。

二、简答(每小题7分,共35分)

1、面向过程思想的优点是什么?

答:相对面向过程而言,面向对象的主要优点是实现了软件复用 ,开发工作的重用性、继承性高,降低重复工作量 ,缩短了开发周期 2、比较Java和C++?

Java 是完全的面向对象语言, 完全抛弃了面向过程的弱点; C++是在 C 的基础上改造成面向 对象语言的,还含有面向过程的弱点。 3、重载的意义?

答:重载的意义在于丰富了动作的多样性,但是并不加重程序员的负担;减少函数的数量,避免命名的污染,可应对不同的需求,避免同一个程序中同名的不同方法共存的情况 4、抽象类的作用和意义?

抽象类的主要作用是仅仅提供继承, 而不能实例化; 其意义在于高度抽象了同类实体的共性, 使得软件复用更加丰富多样。 5、多态的意义?

对象虚函数内建立一个虚指针, 并指向每个类所维护的一个虚表, 描述其应该执行的虚函数。

三、辩析。可以不说出对错但是要给出评价(每小题10分,共20分)

1、任何父类对象都可以被子类对象替代。 符合里氏替换原则

2、public修饰符号破坏了数据的开放性。

public 修饰符号允许外界方法访问本作用域内的成员,因此破坏了封装性

四、综合回答(共15分)

设计一个复数类,实现复数的加、减操作。 #include #include

using namespace std;

class Complex{//定义复数类 double real;//实部 double image;//虚部 public:

Complex( double r=0.0,double i=0.0 )//构造 :real(r),image(i)//初始化列表 {}

Complex operator+( const Complex& cc )const {

return Complex(real+cc.real,image+cc.image); }

Complex operator-( const Complex& cc )const {

return Complex(real-cc.real,image-cc.image); }

Complex operator*( const Complex& cc )const {

double r=real*cc.real-image*cc.image; double i=image*cc.real+real*cc.image; return Complex(r,i); }

//输出复数信息

friend ostream& operator

作业完成要求:大作业要求学生手写,提供手写文档的清晰扫描图片,并将图片添加到word文档内,最终word文档上传平台 ,不允许学生提交其他格式文件(如JPG,RAR等非word文档格式),如有雷同、抄袭成绩按不及格处理。

2018-2019学年第二学期期末考试《面向对象程序设计》大作业参考答案

吉林大学网络教育学院2018-2019学年第二学期期末考试《面向对象程序设计》大作业学生姓名专业层次年级学号学习中心成绩
推荐度:
点击下载文档文档为doc格式
8uzqf3hudh5nd0e7n2yj9vfqx3d4wu015xn
领取福利

微信扫码领取福利

微信扫码分享