首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。 说明 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Fi
阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。 说明 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Fi
admin
2012-12-10
103
问题
阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。
说明
以下程序的功能是计算三角形、矩形和正方形的面积并输出。
程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。
c++程序
#include <iostream.h>
#inclule <math.h>
class Figure {
public:
virtual double getArea()= 0; // 纯虚拟函数
};
class Rectangle: (1) {
protected:
double height;
double width;
public:
Rectangle() { };
Rectangle(double height, double width) {
this->height = height;
this->width = width;
}
double getArea() {
return (2) ;
}
class Square: (3) {
public:
Square(double width) {
(4) ;
}
};
class Triangle: (5) {
double la;
double lb;
double lc;
public:
Triangle(double la, double lb, double lc) {
this->la = la; this->lb =’lb; this->lc = lc;
}
double getArea() {
double s = (la+lb+lc)/2.0;
return sqrt(s*(s-la)*(s-lb)*(s-lc));
} }; void main() {
Figure* figures[3] = {
new Triangle(2,3,3), new Rectangle(5,8), new Square(5)};
for (int i = 0; i < 3; i++) {
com << "figures[" << i << "] area =" << (figures
)->getArea0 << endl;
}
选项
答案
(1)public Figure (2)height*width (3)public Rectangle (4)height=this->width=width (5)public Figure
解析
本题以C++语言为载体,考查面向对象程序设计中的三个重要机制——继承、抽象类和动态绑定的应用。
继承是父类和子类之间共享数据和方法的机制。这是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
动态绑定是实现动态多态的基础,在C++中,重置是一种动态多态。重置(overriding)的基本思想是,通过一种动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。
抽象类的主要作用在于为派生类提供一个基本框架和一个公共的对外接口。在C++语言中,通过定义纯虚函数来定义抽象类。纯虚函数是指只给出函数声明而没有给出实现(包括在类定义的内部和外部)的虚成员函数,其格式为:在函数原型的后面加上符号“=0”。包含纯虚函数的类称为抽象类。一个抽象类的派生类应对其抽象基类的所有纯虚成员函数进行实现。
本程序的功能是通过一个公共接口getArea()来计算不同形状图形的面积。题目中定义了4个类Figure、Rectangle(长方形)、Square(正方形)和Triangle(三角形)。在完成本题目时,一个重要的环节是确定这4个类之间的继承关系。
第一步:确定基类。题目的说明已经指出,类Figure是一个抽象类,那么Figure只能作为基类。
第二步:确定把Figure作为直接基类的派生类。理论上,其余的3个类都可以作为
Figure的直接派生类。我们先假定Rectangle、Square和Triangle都是Figure的直接派生类,下面结合程序来验证一下这种继承关系是否合理:
▲ 类Rectangle是Figure的派生类,在Rectangle中将getArea进行了重置,所以第(2)空应给出getArea的实现体:计算长方形的面积,即height*width。这时需要考虑的另一个问题是继承的方式。在C++中继承有三种方式:public、private和protected,它用于说明派生类的实例的用户以及派生类的派生类对该派生类的基类成员的访问控制。由于无法确定Rectangle是否会作为其他类的基类(若存在这种情况,该类中的某些成员函数可能会是其他类的公共接口),所以选择public继承方式,则第(1)空应填public Figure。
▲ 类Triangle是Figure的派生类,在该类中也给出了getArea的实现,所以第(5)空应该填public Figure。
▲ 对类Square来说,它的基类可能有两个:Figure和Rectangle。Square本身是一种图形,同时Square也是一种特殊的Rectangle。但是在类Square中没有提供对方法 getArea的重新定义,所以Square不可能作为Figure的派生类。那么,它的基类只能是 Rectangle,所以第(3)空应填publicRectangle。显而易见,第(4)空是要给出计算正方形面积的操作。这时可以借助其基类Rectangle的getArea方法,此时需要做的是将正方形的边长width传递到基类Rectangle的属性height和width中即可,所以第(4)空应填height=this->width=width。这也是第(3)空选择public继承方式的原因。
[*]
此时我们可以得出题目中4个类的继承关系如下:
其中箭头表示继承关系。
转载请注明原文地址:https://kaotiyun.com/show/GnjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Word2007中,为使内容更加醒目,文章更具有条理性,可在若干段落前面添加__________。
上级要求信息处理技术员做a、b、c、d、e五件工作。先做什么,后做什么,如何安排呢?根据工作性质以及紧急程度,他列出了如下几条规则:a应在b前 c应在a前 d应在a前 a应在e前d应在b前 b应在e前 c应在d前 c应在
某金融企业正在开发移动终端非现场办公业务,为控制数据安全风险,采取的数据安全措施中并不包括______。
人类传播信息的五大类媒体按其出现的先后顺序排列为________。
图像数据压缩的主要目的是(25)。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
在计算机程序设计语言中,可以直接被计算机识别并执行的是______。
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明某公司内部有一个采用TCP/IP作为传输协议的100BASE-TX局域网,包括1台服务器和20台客户机,通过一台16端口的交换机与一台8端口共享集线器级连,其网络结构如图11所
防火墙包过滤规则的默认策略为拒绝,下表给出防火墙的包过滤规则配置界面。若要求内部所有主机能使用IE浏览器访问外部IP地址为202.117.118.23的Web服务器,为图中(1)~(4)空缺处选择正确答案。(1)A.允许B.拒绝(2)A.192
从表1-1中为图1-1中(1)~(4)处选择合适设备名称(每个设备限选一次)。表1-2是路由器A上的地址变换表,将图1-2中(8)~(11)处空缺的信息填写在相应的位置。
随机试题
甲投资公司以住宅小区需建设配套设施的名义,将公司旗下的住宅小区房屋作抵押,从银行贷款1亿元,年息5%,然后将该款转借乙公司使用,乙公司除负担银行5%的利息外,还须付给甲公司3%的使用费。甲公司的行为是:
国内某建筑公司在境外承包了一项建筑工程,取得工程价款3000万元;在境内承包了一家外商独资企业的建筑工程,取得工程价款1500万元;建设一幢办公楼自用,价值1000万元。建筑业营业税率为3%,该建筑公司应纳营业税为( )万元。
国内航线持全票、乘坐公务舱旅客的免费行李额为()。
古人的座次有严格的尊卑之分,鸿门宴中的项王、项伯东向坐,亚父南向坐,沛公北向坐,张良西向侍。其中,座次最卑的是()。
新闻述评
目录列表框Path属性的作用是
Youwillhearaconversationthroughaphone.Foreachquestion(23-30),markoneletter(A,BorC)forthecorrectanswer.After
都市寸土千金,地价炒得越来越高,今后将更高。拥有一个小小花园的希望,对寻常之辈不啻是一种奢望,一种梦想。我想,其实谁都有一个小小花园,这便是我们的内心世界。人的智力需要开发,人的内心世界也是需要开发的。人和动物的区别,除了众所周知的诸多方面,恐怕
Itisbecauseofariseinairfares_____they’vesurchargedus10%onthepriceoftheholiday.
Thereis,writesDanieleFanelliinarecentissueofNature,somethingrotteninthestateofscientificresearch—anepidemico
最新回复
(
0
)