20152016学年第二学期期末考试

2023-3-15 来源:不详 浏览次数:

北京白癜风医院 http://pf.39.net/bdfyy/bdfzj/

一、名词解释(每小题4分,共40分)

1.面向对象

解:面向对象主要指一种程序设计方法,但在随后的发展中,面向对象的方法已经渗透到计算机软件领域的许多分支。

2.对象

解:对象是代码和数据的组合,可以作为一个单位来处理。对象可以是应用程序的一部分,比如可以是控件或窗体。整个应用程序也是一个对象

3.构造函数

解:构造函数的函数名和类名是相同的。如果有给对象定义具体的值,则构造函数的值将会被覆盖。

4.析构函数

解:析构函数(destructor)与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。

5.继承

解:这种子类自动获得父类特性的机制,叫做继承。

6.多态

解:一个操作随着所传递或捆绑的对象的不同能够做出不同的反应,其行为模式称为多态。

7.引用

解:引用即别名,即是某对象的另一个名字。声明引用时不分配新的存储空间,只是使其“指向”某个已存在的变量。

8.友元

解:如果确有必要频繁访问类的私有数据,为了提高效率,在定义类时,可以把需要频繁访问该类私有数据的函数或类定义为友元。

9.模板

解:DNA双链中其序列与编码链或信使核糖核酸互补的那条链。在DNA复制或转录过程中,作为模板指导新核苷酸链合成的亲代核苷酸链。

10.异常处理

解:是代替日渐衰落的errorcode方法的新法,提供errorcode所未能具体的优势。

二、综合回答题(每小题15分,共60分)

1.请介绍运算符重载的意义。

答:运算符重载是一种特殊的函数重载。   c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。   由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。   在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。   成员函数的形式比较简单,就是在类里面定义了一个与操作符相关的函数。友元函数因为没有this指针,所以形参会多一个。

2.谈谈多态的意义。

答:(1)JAVA是区分类型的。算加法,这个方法名叫add,但是事实并不知道这个方法计算的是什么类型的:add(inta,intb)、add(floata,floatb)、混合的、double的、数组、集合等等,但是要计算的时候只要调用add方法,自动找类型匹配的。(2)参数个数不同。假如要计算3个整形参数的,调用2次add(inta,intb)太麻烦,直接调用add(inta,intb,intc)就好了。(3)重写父类的方法。美国人和中国人都是继承人这个父类,美国人吃饭用刀叉,中国人吃饭用筷子,子类自己定义吃饭怎么实现,反正吃饭的方法名是一样的,调用起来方便。前两种是重载可以理解成智能,第三个是重写可以说是扩展性强。总之就是为了方便。

3.面向对象程序设计思想的优点和缺点。

答:面向对象出现在java,python,perl里面,以类的形式出现。一个类是一个完整的体系,例如在游戏编程时,可以对不同模块封装成类,到时候调用就可以了。打个比方吧,一个类就是一个多功能的冰箱,可以冷藏,可以保温,冰箱自己就是一个整体,而在实际问题中,做饭的时候,我们调用它的储藏功能与电饭锅等等解决实际问题。跟函数不一样,函数着重于过程,一个函数解决一个问题,而类本身有很多功能,可以拓展,继承,调用某些功能。

4.设计一个日期类,实现时间的加、减操作。

答:#include"istream.h"classtime{private:inthour,minute,second;public:time(inth=0,intm=0,ints=0){hour=h;minute=m;second=s;}voidsettime();voiddisplay();timeoperator+(time);timeoperator-(time);};voidtime::settime(){cinhourminutesecond;if(hour24

hour0

minute60

minute0

second60

second0)cout"error"endl;elsecinhourminutesecond;}voidtime::display(){couthour":"minute":"second;}timetime::operator+(timea){inth,m,s;h=(a.hour+(minute+a.minute+(a.second+second)/60)/60)24;m=(a.minute+(a.second+second)/60)%60;s=(a.second+second)%60;returntime(h,m,s);}voidmian(){timea,b,c;cout"请输入a的时间"endl;a.settime();cout"请输入b的时间"endl;b.settime();cout"a的时间为:"endl;a.display();cout"b的时间为:"endl;b.display();c=a+b;c.display();}

转载请注明:
http://www.wanruiguanye.com/bzyy/77435518.html
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有 2014-2024
    今天是: