首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。 [说明] 已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Bo
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。 [说明] 已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Bo
admin
2012-01-13
34
问题
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。
[说明]
已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Box表示矩形,Ellipse表示椭圆,Circle表示圆(即特殊的椭圆),Line表示线条。
下面的C++代码用于实现图5-1所给出的设计思路,将其空缺处填充完整并编译运行,输出结果为:
Ellipse
Circle
Ellipse
C
E
[C++代码]
#include<string>
#include<iostream>
using namespace Std;
class Shape{
public:
Shape(const String& name){
m_name=name;
}
~Shape(){}
(1) void paint()=0;
string getName()const{
return m_name;
}
private:
string m_name;
};
//Box和Line类的定义与Ellipse类似,其代码略
class Ellipse (2) {
public:
Ellipse(const String& name): Shape(name){cout<<"E1lipse"<<end1;}
void paint() { cout<<getName()<<end1; }
};
class Circle (3) {
public:
Circle(const string& name): Ellipse(name)(cout<<"Circle"<<end1;}
};
class Diagram{
public:
void drawAShap(Shape* shape){ shape->paint();}
void drawShapeS(){
shapes[0]=new Circle("C");
shapes[1]=new Ellipse("E");
for (int i=0; i<2; ++1) {
drawAShap(Shapes
);
}
}
void close()( /*N除形状,代码略$/)
private:
Shape* shapes[2];
};
int main()
{
Diagram* diagram= (4) ;
diagram->drawShapes();
diagram->close();
(5) diagram;
}
选项
答案
virtual public Shape public Ellipse new Diagram delete
解析
本题考查C++语言程序设计的能力,涉及类和抽象类、对象、函数和虚函数的定义和相关操作,以及继承关系。要求考生根据给出的案例和执行过程说明,认真阅读理清程序思路,然后完成题目。
先考查类图整体结构。本题中根据类图定义了类:Diagram、Shape、Box、Ellipse、Line和Circle。其中Shape为抽象类,表示通用图形,抽象类中应至少包含一个纯虚拟(virtual)函数。Box表示矩形,Ellipse表示椭圆,Line表示线条,三者都是Shape的子类,继承了Shape类,Circle表示圆(即特殊的椭圆),继承了Ellipse。
抽象类Shape的定义中,需要通过使用virtual标识虚函数,void paint()=0;表示paint()是纯虚函数,其定义前必须添加virtual进行表示。类Ellipse为Shape的子类,Circle为Ellipse的子类,需要在代码中体现出继承。另外,在子类的构造函数中,调用父类的构造函数,所以继承的权限为public。其语法为:public后加类名。
类Diagram中没有定义构造函数,编译器生成一个缺省的构造函数,调用是采用new关键字加类名。使用完成之后,通过delete进行释放。
因此空(1)需要表现出paint()函数为纯虚函数,即为virtual;空(2)和空(3)处添加继承父类,并且权限为public,即为:public Shape和:public Ellipse;空(4)处补充通过使用编译器生成的缺省构造函数创建对象,即ilew Diagram;空(5)处通过delete释放new创建的对象diagram。
转载请注明原文地址:https://jikaoti.com/ti/t5W7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2010中,设单元格A1、B1、C1、A2、B2、C2中的值分别为1、2、3、4、5、6,若在单元格D1中输入函数“=MAX(A1:A2,B1:C2)”,按回车键后,则D1单元格中的值为(
下面关于幻灯片打印的叙述中,正确的是______。
上级要求信息处理技术员做a、b、c、d、e五件工作。先做什么,后做什么,如何安排呢?根据工作性质以及紧急程度,他列出了如下几条规则:a应在b前 c应在a前 d应在a前 a应在e前d应在b前 b应在e前 c应在d前 c应在
在Excel2007中,(43)________________不是计算从A1到A6单元格中数据之和的公式。
数据录入工作有两个指标:录入速度和错误率。一般而言,数据录入员在录入大批数据时,录入速度会(65),错误率会(66)。66
在Excel的A1单元格中输入函数“=IF(12,1,2)”,按回车键后,A1单元格中的值为()。
在Excel中,若要计算出B3:E6区域内的数据的最小值并保存在B7单元格中,应在B7单元格中输入______。
内存用于存放计算机运行时的指令、程序、需处理的数据和运行结果。但是,存储在(2)中的内容是不能用指令修改的。
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明在一台计算机上安装完成Windows2000服务器及相应的服务组件。
Linux通过字母和数字的组合来标识硬盘分区,/dev/hda3指第(1)个硬盘的第3个分区。该硬盘是(2)类型。(1)A.1B.2C.3(2)A.SCSIB.IDEC.USB创建系统引导软盘的作用是什么?
随机试题
医学伦理学的基本原则是()
某开发公司现以1200万元购买一块土地,根据批准的规划设计方案,开发商计划在1年内建成一栋建筑面积为30000m2的住宅楼,预计总售价可达6000万元,现实一年期贷款利息率为5.85%,销售税费率控制在6%,开发商要实现预付资本20%以上的投资回报
某机械制造公司在北京设立总机构A,在武汉、成都分别设有B、C两个二级分支机构,该公司实行按季度预缴分摊企业所得税的办法。(1)2014年度B机构全年营业收入、职工薪酬、资产总额分别为9000万元、220万元和3000万元,C机构全年营业收入、职工薪酬、资
下列选项中属于经济体制的要素的有()。
今天中国所面对的,不仅是计划经济到社会主义市场经济的_______,更有整个社会伴随新型工业化、信息化、城镇化、农业现代化的全面转型。这样的背景下,零敲碎打、_______解决不了治理难题,只有在全面深化改革的联动和集成中完善治理,在“立治有体,施治有序”
Guidelinesforfoodlabellingaremadewithgoodintentions,buttheyendupleavingconsumersbaffledbyambiguousmarketingra
在Word2007的编辑状态下,需要设置表格中某些行列的高度和宽度时,可以先选择这些行列,再选择_________,然后进行相关参数的设置。
ThePurposesofLiteraryAnalysisI.IntroductionLiteraryanalysisisinitselfauniversalnecessity.—reason1:enablesrea
(1)Whatcausesasorethroat?Manythingscancauseasorethroat.Thesecausesincludeinfectionswithvirusesorbacteria
Couldthereasonfortheworld’seconomicmisfortunesallcomedowntofingerlength?Althoughcertainlyanoversimplificationo
最新回复
(
0
)