首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。 需要新增图形Circle,又已知有类XX
阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。 需要新增图形Circle,又已知有类XX
admin
2010-12-17
58
问题
阅读以下说明和C++代码,将应填入(n)处的字句写上。
[说明]
现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。
需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象: Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。
[图6-1]
[C++代码]
class Shape{
public:
(1) void display()=0;
};
class Line:public Shape{//省略具体实现
};
class Square:public Shape{//省略具体实现
};
class XXCircle{
public:
void displayIt(){
//省略具体实现
}
//省略其余方法和属性
};
class Circle:public Shape{
private:
XXCircle *pxc;
public:
Circle();
void display();
};
Circle::Circle(){
pxc=(2);
}
void Circle::display()
{
pxc->(3);
}
class Factory{
public:
(4) getshapeInstance(int type){//生成特定类实例
switch(type){
case 1:return new Square;
case 2:return new Line;
case 3 :return new Circle;
default:return NULL;
}
}
};
void main(int argc,char*argv[]){
if(argc !=2){
cout<<"error parameters!"<<endl;
return;
}
int type=atoi(argv[1]);
Factory factory;
Shape*s=factory. (5);
if(s==NULL){
cout<<"Error get the instance!"<<endl;
return;
}
s->display();
delete s;
return;
}
(5)
选项
答案
getShapeInstance(type)
解析
由“=0”可轻易判知display()函数是一个纯虚函数,因此空(1)应填virtual。
由题设,Circle实例化时,须先实例化一个XXCircle对象,而pxc正好也是XXCircle对象指针,故空(2)应填new XXCircle。
Circle在此充当适配器的角色,它所做的就是将消息转发给XXCircle实例,display()是“显示”消息,故调用XXCircle的相应方法,故空(3)应填displayIt()。
方法getShapelnstance(int type)的返回值有new Line、new Square以及new Circle,参照类的层次结构,可得空(4)应填Shape*。注意是指针。
Factory类仅定义了一个方法getShapeInstance,而此处语义正是取得一个形状进行显示,故空(5)应填getShapeInstance(type)。
转载请注明原文地址:https://kaotiyun.com/show/kvDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在结构化分析方法中,用于行为建模的模型是①,其要素包括②。②处应填入?
在结构化分析方法中,用于行为建模的模型是①,其要素包括②。①处应填入?
一个程序的控制流图中有5个节点、9条边,在测试用例数最少的情况,确保程序中每个可执行语句至少执行一次所需测试用例数的上限是______。
在字长为16位、32位、64位或128位的计算机中,字长为______位的计算机数据运算精度最高。
(3)是指按内容访问的存储器。
软件测试信息流的输入包括______。①软件配置(包括软件开发文档、目标执行程序、数据结构)②开发工具(开发环境、数据库、中间件等)③测试配置(包括测试计划、测试用例、测试驱动程序等)④测试工具(为提高软件测试效率,使用测试
在开发一个字处理软件时,首先快速发布了一个提供基本文件管理、编辑和文档生成功能的版本,接着发布提供更完善的编辑和文档生成功能的版本,最后发布提供拼写和语法检查功能的版本,这里采用了()过程模型。
ISO/IEC9126《软件工程产品质量》统一了多种质量模型。其中,下述关于软件使用质量的描述,不正确的是______。A.它测量用户在特定环境中能达到其目标的程度,不是测量软件自身的属性B.使用质量的属性分为4个特性:有效性、生产率、安全性和满意度
以下关于测试工作在软件开发各阶段作用的叙述中,不正确的是()。
测试记录包括、(64)。①测试计划或包含测试用例的测试规格说明。②测试期间出现问题的评估与分析。③与测试用例相关的所有结果,包括在测试期间出现的所有失败。④测试中涉及的人员身份。
随机试题
如果企业的净收益营运指数小于1,说明企业的非经营收益是负值。()
情绪是一种反映形式,其中介为()
菊花具有的功效是
颞下颌关节复发性脱位的治疗方法不包括
患儿,2岁。百日咳后持续发热半月余,体温在38℃左右,易倦纳差,消瘦,近1周头痛,烦躁,时有呕吐,体检:心肺听诊无异常,肝肋下0cm,颈强(±),脑脊液:外观清,蛋白(+),细胞数:80×106/L,糖:5mmol/L,氯化物115mmol/L,诊断为
小凡年满10周岁,精神健康,智力正常。他在学校门口的文具店看中一块橡皮,定价2元,于是用自己的零钱将其买下。下列关于小凡购买橡皮行为效力的表述中,正确的是()。
关于新民主主义革命的任务、目的及对象说法正确的是()。
高速公路上行驶的汽车A的速度是100公里每小时,汽车B的速度是。120公里每小时,此刻汽车A在汽车B前方80公里处,汽车A中途加油停车10分钟后继续向前行驶。那么从两车相距80公里处开始,汽车B至少要多长时间可以追上汽车A?()
数据库概念设计阶段得到的结果是()
A、Olderpeople’saversiontonewmusic.B、Olderpeople’schangingmusicaltastes.C、Insightsintothefeaturesofgoodmusic.D、
最新回复
(
0
)